Формула Excel: фильтровать каждую n-ю строку -

Содержание

Общая формула

=FILTER(rng,MOD(SEQUENCE(ROWS(rng)),n)=0)

Резюме

Чтобы отфильтровать и извлечь каждую n-ю строку, вы можете использовать формулу, основанную на функции ФИЛЬТР вместе с МОД, СТРОКА и ПОСЛЕДОВАТЕЛЬНОСТЬ. В показанном примере формула в F5:

=FILTER(data,MOD(SEQUENCE(ROWS(data)),3)=0)

где data - именованный диапазон D5: D16. Если n жестко запрограммировано в формуле как 3, функция ФИЛЬТР возвращает каждую третью строку данных.

Объяснение

Функция ФИЛЬТР предназначена для фильтрации и извлечения информации на основе логических критериев. В этом примере цель состоит в том, чтобы извлечь каждую третью запись из показанных данных, но в данных нет информации о номере строки.

Работая изнутри наружу, первый шаг - создать набор номеров строк. Это делается с помощью функции SEQUENCE следующим образом:

SEQUENCE(ROWS(data))

Функция ROW возвращает количество строк в данных именованного диапазона . Используя количество строк, ПОСЛЕДОВАТЕЛЬНОСТЬ возвращает массив из 12 чисел в последовательности:

(1;2;3;4;5;6;7;8;9;10;11;12)

Этот массив возвращается непосредственно в функцию MOD в качестве числового аргумента с жестко заданным числом 3 в качестве делителя. MOD настроен для проверки, делятся ли номера строк на 3, а остаток равен нулю.

MOD(SEQUENCE(ROWS(data)),3)=0 // divisible by 3?

Результатом MOD является массив или значения TRUE и FALSE, например:

(FALSE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;TRUE)

Обратите внимание, что значения ИСТИНА соответствуют каждой третьей строке данных. Этот массив доставляется непосредственно в функцию FILTER в качестве аргумента включения. ФИЛЬТР возвращает каждую третью строку данных в качестве окончательного результата.

Интересные статьи...