Фильтр нескольких столбцов Google Spreadsheet с использованием OR

У меня есть таблица Google с 3 столбцами, которые либо пустые, либо имеют значение. Я хочу получить количество строк, в которых есть A и B или C. Если бы я писал запрос SQL, это было бы

select count(*) 
from Table 
where A is not null and (B is not null or C is not null)

Но я не могу понять, как получить это в таблице Google

Ответы

Ответ 1

Формула ниже должна делать то, что вам нужно:

=ROWS(FILTER(A2:A, NOT(ISBLANK(A2:A)), NOT(ISBLANK(B2:B))+NOT(ISBLANK(C2:C)) ))

И объяснить:

  • ROWS подсчитывает строки аргумента (в нашем случае отфильтрован)
  • FILTER возвращает строки arg1 (A2:A), что все последующие аргументы соответствуют
  • Символ + (дополнение) объединяет два предиката с логическим OR

Наконец, если вы не используете столбцы заголовков, вы можете изменить ссылки с A2:A на A:A

В качестве альтернативы вы можете использовать функцию QUERY:

(Разбивается на несколько строк для удобства чтения)

=ROWS(QUERY(A2:C, 
    "SELECT A WHERE A IS NOT NULL AND (B IS NOT NULL OR C IS NOT NULL)"))

Дополнительные сведения о синтаксисе запросов см. в Справочник по языку запросов API визуализации и, в частности, Справочник по языку