Сложный фильтр в Excel с использованием вложенности И / ИЛИ - PullRequest
1 голос
/ 08 апреля 2020

Возможно ли создать фильтр в Excel по нескольким столбцам с AND / ORs, или какой предлагаемый способ сделать это? Например:

 WHERE
 (Name = "Tom" AND country in ['US', 'CA']) 
    OR 
 (Age > 14 and country not in ['FR', 'DE'])

Если нет, то как обычно сделать в фильтре выражение SQL -подобного типа в Excel, или это слишком сложный случай для рассмотрения Excel?

Ответы [ 3 ]

1 голос
/ 08 апреля 2020

В Excel AND и OR являются функциями. См. Excel / Формулы и функции .

Пример:

=OR(AND(B2="Tom", OR(B3="US", B3="CA")), AND(B4>14, B3<>"FR", B3<>"DE")))

1 голос
/ 08 апреля 2020

С помощью новых формул массива Dynami c (доступных в большинстве версий Office 365) список можно фильтровать с помощью функции Filter (), а результат отображается вне списка.

На скриншоте показана формула Тима Бигелайзена с условным форматированием, чтобы выделить значения ИСТИНА перед фильтрацией таблицы в этом столбце. Рядом с этим находится результат формулы ONE в ячейке H2, которая автоматически пролилась вправо и вниз. Для простоты идентификации я включил индексный столбец.

Обратите внимание, что AND logi c строится с оператором умножения, тогда как OR logi c использует оператор сложения.

=FILTER(Table1,
((Table1[Name]="Tom")*((Table1[Country]="US")+(Table1[Country]="CA")))+
((Table1[Age]>14)*(Table1[Country]<>"FR")*(Table1[Country]<>"DE")))

enter image description here

1 голос
/ 08 апреля 2020

Вы можете попробовать:

=OR(AND(Name="Tom", OR(country="US", country="CA")),
    AND(Age > 14, AND(country<>"FR", country<>"DE")))

Хитрость в том, что для использования AND / OR с Excel требуется вложение логики c, что отличается от того, как это делает SQL.

Вы можете заменить Name и country фактическими ячейками Excel, которые содержат эти конкретные данные.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...