ФИЛЬТР (условие ИЛИ условие) синтаксис?

32

Я использую FILTER()для отображения значения из листа 2, где Nameстолбцы совпадают.

Моя проблема в том, где я хочу:

=FILTER(Sheet2!A:F, Sheet2!A:A="Combat Medic" OR Sheet2!A:A="Universal")

как ORприводит к ошибке.

Какой правильный синтаксис?
Должен ли я использовать QUERY()вместо?

Rushmik
источник
1
Вы также можете найти это полезным: Google Spreadsheets: Фильтровать диапазон по массиву
Vidar S. Ramdal

Ответы:

43

Используйте следующую формулу, чтобы получить нужный запрос.

формула

=FILTER(A:A;(A:A="Combat Medic")+(A:A="Universal"))

Разъяснения

В ссылке Ахаб объясняет, что +и *может использоваться как логическое выражение, как ORи AND.

Решение с IFERROR(см. Историю изменений) в этом случае бесполезно, если только вы не хотите найти конкретную строку:

=FILTER(Sheet2!A:F;IFERROR(FIND("Combat";A:A);0) + IFERROR(FIND("Uni";A:A);0))

Здесь IFERRORвозвращает, 0когда ничего не найдено, заставляя формулу все еще функционировать.

Скриншот

введите описание изображения здесь

пример

Я изменил файл примера, чтобы он содержал оба решения: Filter with Boolean

Ссылка

Google Product Forum, логические выражения

Джейкоб Ян Туинстра
источник
Интересный! Не могли бы вы рассказать, как это IFERROR(...) + IFERROR(...) работает?
Видар С. Рамдал
Где документация, что «+» может использоваться как логическое ИЛИ?
Крис Моррис
@ChrisMorris: productforums.google.com/d/msg/docs/8nStFrjgO5Q/S0ppgEicgcAJ
Джейкоб Ян Туинстра,
@JacobJanTuinstra Спасибо, Джейкоб. Есть ли официальная документация?
Крис Моррис
-1

=FILTER(A:F, REGEXMATCH(A:A, "Combat Medic|Universal"))

0


=QUERY(A:F, " where A matches 'Combat Medic|Universal'", 0)

0

Пользователь0
источник