Формула Excel: ФИЛЬТР с несколькими критериями ИЛИ -

Содержание

Резюме

Чтобы извлечь данные с несколькими условиями ИЛИ, вы можете использовать функцию ФИЛЬТР вместе с функцией ПОИСКПОЗ. В показанном примере формула в F9:

=FILTER(B5:D16, ISNUMBER(MATCH(items,F5:F6,0))* ISNUMBER(MATCH(colors,G5:G6,0))* ISNUMBER(MATCH(cities,H5:H6,0)))

где элементы (B3: B16), цвета (C3: C16) и города (D3: D16) являются именованными диапазонами.

Эта формула возвращает данные, в которых элемент (футболки ИЛИ толстовка) И цвет (красный ИЛИ синий) И город (Денвер ИЛИ Сиэтл).

Объяснение

В этом примере критерии вводятся в диапазоне F5: H6. Логика формулы:

товар (футболка ИЛИ толстовка) И цвет (красный ИЛИ синий) И город (Денвер ИЛИ Сиэтл)

Логика фильтрации этой формулы (аргумент include) применяется с функциями ISNUMBER и MATCH вместе с логической логикой, применяемой в операции с массивом.

ПОИСКПОЗ настраивается «в обратном порядке», при этом значения поиска поступают из данных, а критерии используются для массива поиска. Например, первое условие - одежда должна быть либо футболкой, либо худи. Чтобы применить это условие, ПОИСКПОЗ настраивается следующим образом:

MATCH(items,F5:F6,0) // check for tshirt or hoodie

Поскольку в данных 12 значений, в результате мы получаем массив с 12 значениями, подобными этому:

(1;#N/A;#N/A;2;#N/A;2;2;#N/A;1;#N/A;2;1)

Этот массив содержит либо # N / A ошибок (нет совпадений), либо числа (совпадения). Номера уведомлений соответствуют элементам футболки или худи. Чтобы преобразовать этот массив в значения ИСТИНА и ЛОЖЬ, функция ПОИСКПОЗ заключена в функцию ЕЧИСЛО:

ISNUMBER(MATCH(items,F5:F6,0))

что дает такой массив:

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

В этом массиве ИСТИННЫЕ значения соответствуют футболке или худи.

Полная формула содержит три выражения, подобных приведенному выше, используемому для аргумента include функции FILTER:

ISNUMBER(MATCH(items,F5:F6,0))* // tshirt or hoodie ISNUMBER(MATCH(colors,G5:G6,0))* // red or blue ISNUMBER(MATCH(cities,H5:H6,0))) // denver or seattle

После оценки MATCH и ISNUMBER у нас есть три массива, содержащих значения TRUE и FALSE. Математическая операция умножения этих массивов переводит значения ИСТИНА и ЛОЖЬ в единицы и нули, поэтому мы можем визуализировать массивы в этой точке следующим образом:

(1;0;0;1;0;1;1;0;1;0;1;1)* (1;0;1;1;0;1;0;0;0;0;0;1)* (1;0;1;0;0;1;0;1;1;0;0;1)

Результатом, согласно правилам логической арифметики, является единственный массив:

(1;0;0;0;0;1;0;0;0;0;0;1)

который становится аргументом включения в функции ФИЛЬТР:

=FILTER(B5:D16,(1;0;0;0;0;1;0;0;0;0;0;1))

Конечный результат - три строки данных, показанные в F9: H11.

С жестко запрограммированными значениями

Хотя в формуле в примере используются критерии, введенные непосредственно на листе, критерии могут быть жестко заданы как константы массива, а не следующим образом:

=FILTER(B5:D16, ISNUMBER(MATCH(items,("Tshirt";"Hoodie"),0))* ISNUMBER(MATCH(colors,("Red";"Blue"),0))* ISNUMBER(MATCH(cities,("Denver";"Seattle"),0)))

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