почти новый год. У меня уже есть вопрос по Excel.

В рабочем листе «Тренировки» у меня есть таблица «WorkoutsSummary», содержащая следующую информацию:

Excel table

Как видите, есть две ячейки, содержащие тренировку «Арес» (это просто название тренировки), однако в заголовке столбца таблицы «Порядок тренировки» (второй столбец) они имеют разные значения. В таблице я могу добавить больше строк, которые могут содержать те же значения (та же тренировка, то же время начала, то же время окончания, та же продолжительность тренировки), , кроме в столбце «Порядок тренировки» (уникально для каждой строки) .

So, having said that, what I want to do is to show all Ares workouts (that means showing the Workout Duration value), in other worksheet named "Results", in ascending order. Now, as I said, it's in ascending order, and even though Ares is repeated twice, the numeric value in Workout Order isn't. This means that in the Results worksheet it should first be displayed the first Ares (containing the Workout Duration of 16:03), and below it the second Ares (containing the Workout Duration of 20:04).

Я создал этот код:

=INDEX(WorkoutsSummary[Workout Duration], MATCH("Ares", WorkoutsSummary[Workout], 0))

Этот код, используемый в ячейке C13 в таблице «Результаты», отображает «16:03», что является продолжительностью тренировки первого Ареса.ПРОБЛЕМА в том, что я не могу понять, как я могу использовать другой код для отображения второго Ареса. Очевидно, я не могу использовать один и тот же код, потому что я всегда показываю продолжительность одного и того же первого Ареса. Вот тогда, я думаю, в игру вступают значения порядка тренировки.

Любая непонятная вещь, прокомментируйте, и я постараюсь объяснить получше.

Ответы (1)

Вы хотите использовать small (if ()):

 =INDEX(WorkoutsSummary[Workout Duration], MATCH(SMALL(IF( "Ares" = WorkoutsSummary[Workout],WorkoutsSummary[Workout Order]),1),IF( "Ares" = WorkoutsSummary[Workout],WorkoutsSummary[Workout Order]), 0)) 

Это массив, и его нужно подтвердить с помощью Ctrl-Shift-Enter.

Измените 1 во втором аргументе малого числа на 2, чтобы получить второй, и так далее.

Вы можете использовать Count () или какую-либо другую функцию для динамического подсчета, но это даст вам место для начала.

2022 WebDevInsider