См. Решение ниже, хотя все шаги были подробно описаны в прикрепленном изображении.
Я собираюсь составить подробное объяснение каждого из шагов, показанных ниже, чтобы объяснить, как они работают.
Шаг 1:
Демонстрирует условие поиска, которое мы установили. В этом примере мы ищем все строки, где Gender = M
Ниже показана эквивалентная функция COUNTIF, которая возвращает число строк, найденных с этим условием: 3
Шаг 2:
Установите формулу массива =IF($B$2:$B$8=$B$11,ROW($B$2:$B$8))
.
Это формула массива, использующая расширение обычной функции IF. Он сравнивает значения в массиве B2:B8
с B11
и возвращает результаты сравнения в виде массива значений. Когда сравнение истинно, результатом является число ROW(), иначе FALSE (потому что при сравнении ложно не указано значение).
Чтобы понять это далее, вы можете начать с более простых формул IF, как показано ниже, и поэкспериментировать с различными параметрами в value_if_true и value_if_false и понять результаты `IF(B2 = B11, ROW(B2),)'
`ЕСЛИ (В2 = В11, СТРОКА (В2), "несоответствие")»
Теперь попробуйте то же самое, изменив B11 на F, а затем посмотрите, что произойдет с результатами.
Шаг 3: Здесь мы используем функцию SMALL для возврата n-го наименьшего значения в массиве. Однако хитрость здесь заключается в изменении n-го значения в каждой строке. Таким образом, первая строка должна показывать наименьшее значение в массиве F2:F8
, вторая строка должна возвращать 2-е наименьшее, а третья строка должна возвращать третье наименьшее значение.
Поэтому мы используем ROW()- 1, чтобы получить соответствующую настройку n-й переменной, а все остальное легко.
Шаг 4:
В конце шага 3 у нас есть количество строк, в которых выполняется наше условие поиска. Теперь на этом шаге все, что нам нужно сделать, это использовать функцию INDEX для извлечения значений строк, соответствующих этим номерам строк.
Для этого сначала выберите ячейки M2:O2, нажмите F2
и курсор будет расположен в ячейке M2. Введите формулу INDEX($A$1:$C$8,J2,0)
и нажмите Ctrl + Shift + Enter вместе, чтобы это работало как формула массива. 0 в этой формуле вынуждает возвращать всю строку вместо значений из определенного столбца из диапазона A1:C8.
Теперь выберите M2:O4 и нажмите Ctrl+D, чтобы скопировать формулу в самой верхней строке в ячейки ниже.
БИНГО!
Оставьте свои комментарии, если вам нужны разъяснения, и я буду более чем рад разъяснить.
Я использовал ряд упрощений и разбил шаги, чтобы объяснить функционирование. Все эти формулы могут быть объединены вместе для достижения одинаковых результатов за один раз.
Также еще одно упрощение: выбор ввода формул с точным количеством строк, однако, когда вы не знаете, сколько строк будет возвращено условием поиска, вы можете сделать массив конечных результатов таким же большим, как исходные данные. установить диапазон, чтобы потенциально обслуживать, если все строки возвращаются. Вы также можете добавить обработку ошибок в каждой из формул, чтобы показывать пустые строки, когда количество возвращаемых строк меньше, чем область результата. Надеюсь, что это имеет смысл!