
Общая формула
=FILTER(data,(rng1"")*(rng2"")*(rng3""))
Резюме
Чтобы отфильтровать строки с пустыми или пустыми ячейками, вы можете использовать функцию ФИЛЬТР с логической логикой. В показанном примере формула в F5:
=FILTER(B5:D15,(B5:B15"")*(C5:C15"")*(D5:D15""))
Выходные данные содержат только строки из исходных данных, в которых все три столбца имеют значение.
Объяснение
Функция ФИЛЬТР предназначена для извлечения данных, соответствующих одному или нескольким критериям. В этом случае мы хотим применить критерии, которые требуют, чтобы все три столбца в исходных данных (имя, группа и комната) содержали данные. Другими словами, если в строке отсутствует какое-либо из этих значений, мы хотим исключить эту строку из вывода.
Для этого мы используем три логических выражения, работающих с массивами. Первое выражение проверяет наличие пустых имен:
B5:B15"" // check names
Оператор not () с пустой строкой ("") переводится как "не пусто". Для каждой ячейки в диапазоне B5: B15 результатом будет ИСТИНА или ЛОЖЬ, где ИСТИНА означает «не пусто», а ЛОЖЬ означает «пусто». Поскольку в диапазоне 11 ячеек, мы получаем 11 результатов в таком массиве:
(TRUE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;FALSE;TRUE)
Второе выражение проверяет пустые группы:
C5:C15"" // check groups
Опять же, мы проверяем 11 ячеек, поэтому получаем 11 результатов:
(TRUE;TRUE;TRUE;FALSE;TRUE;TRUE;TRUE;TRUE;FALSE;FALSE;TRUE)
Наконец, мы проверяем наличие пустых номеров комнат:
D5:D15"" // check groups
который производит:
(TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;FALSE;TRUE;FALSE;TRUE)
Когда массивы, полученные в результате трех приведенных выше выражений, умножаются вместе, математическая операция приводит значения ИСТИНА и ЛОЖЬ к 1 и 0. В этом случае мы используем умножение, потому что хотим применить логику «И»: выражение1 И выражение2 И выражение3. Другими словами, все три выражения должны возвращать ИСТИНА в данной строке.
Следуя правилам логической логики, конечный результат - это такой массив:
(1;0;1;0;1;1;1;0;0;0;1)
Этот массив доставляется непосредственно в функцию FILTER в качестве аргумента включения. ФИЛЬТР включает только 6 строк, которые соответствуют единицам в окончательном выводе.