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

У меня есть таблица 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


person thefroatgt    schedule 25.03.2010    source источник


Ответы (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 визуализации и, в частности, Справочник по языку

person Richard Szalay    schedule 02.05.2010
comment
Замечательно, эта функция QUERY ... Я даже не знал, что она существует! Спасибо! - person reidLinden; 02.08.2011
comment
где находится документация по использованию символа «+» в качестве логического ИЛИ? - person Chris Morris; 25.08.2015