Google Таблицы FILTER() и QUERY() не работают с SUM()

Я пытаюсь вытащить и суммировать данные с одного листа на другой. Это данные GA, встроенные в отчет, поэтому у меня есть сеансы, разделенные по целевой странице и типу устройства, и я хотел бы сгруппировать их по-разному.

Я обычно использую FILTER() для такого рода вещей, но он продолжает возвращать 0 сумм. Подумав, что это может быть странным пограничным случаем с FILTER(), я вместо этого переключился на использование QUERY(). Это дало мне ошибку, но поиск в Google не предлагает много документации о том, что на самом деле означает ошибка. Предполагая, что это может указывать на проблему с типом данных (то есть не числовым), я изменил формат источника с «Автоматический» на «Числовой», но безрезультатно.

Может быть, это отсутствие кофе, я в недоумении, почему ни одна из функций не работает, чтобы выполнить простой поиск и суммирование по критериям.

ФИЛЬТР()

SUM(FILTER(AllData!C:C,AllData!A:A="/chestnut/",AllData!B:B="desktop"))

Нет ошибки, но возвращает 0 независимо от параметров фильтра.

Функция ЗАПРОС()

QUERY(AllData!A:G, "SELECT SUM(C) WHERE A='/chestnut/' AND B='desktop'",1)

Ошибка возвращена:

Не удалось проанализировать строку запроса для параметра QUERY функции 2: AVG_SUM_ONLY_NUMERIC

Пример данных:

 landingPage | deviceCategory | sessions
-------------|----------------|----------
 /chestnut/  | desktop        |        4
 /chestnut/  | desktop        |        2
 /chestnut/  | tablet         |        5
 /chestnut/  | tablet         |        1
 /maple/     | desktop        |        1
 /maple/     | desktop        |        2
 /maple/     | mobile         |        3
 /maple/     | mobile         |        1

person Minadorae    schedule 17.01.2017    source источник
comment
Каков диапазон AllData? Включает ли он строку заголовка?   -  person Grisha Levit    schedule 18.01.2017
comment
Когда я помещаю все это на один лист, обе формулы работают. Похоже, возникла проблема со ссылкой на другой лист/вкладку.   -  person Karl_S    schedule 18.01.2017
comment
@GrishaLevit Диапазон AllData - A: G. Я уменьшил диапазон для примера, потому что сейчас использую только три столбца. AllData включает строку заголовка, строку 1.   -  person Minadorae    schedule 18.01.2017
comment
@Karl_S Интересно. Лист AllData заполняется функцией QUERY, которая собирает данные из других листов (чтобы стать, так сказать, единственным источником правды), может ли это быть проблемой при попытке сослаться на результаты запроса?   -  person Minadorae    schedule 18.01.2017
comment
@Minadorae Убедитесь, что написание и регистр совпадают. Скопируйте имя в буфер обмена и вставьте его в свои формулы. Помимо этого, единственным другим изменением, которое я сделал, был диапазон в запросе, поскольку я закончил с формулами на E1 и G1. Query() дал мне заголовок суммы сеансов в G1 и итог в G2.   -  person Karl_S    schedule 18.01.2017
comment
@Karl_S Готово, имя точно совпадает, но радости все равно нет. Отталкиваясь от вашей идеи о том, что это справочная проблема, я заменил AllData именами исходных листов на данные для целевой страницы / каштан /, Каштан1 и Каштан2. Итак, это SUM(FILTER(Chestnut1,criteria),FILTER(Chestnut2,criteria)), и это работает. Я хотел обойти длинную формулу, используя один лист со всеми данными, но похоже, что запрос просто не работает.   -  person Minadorae    schedule 18.01.2017
comment
Я только что проверил. Я сделал запрос, @Minadorae   -  person Karl_S    schedule 18.01.2017
comment
@Karl_S Хм, тогда вернемся к чертежной доске, почему мой не работает. Хорошая новость.   -  person Minadorae    schedule 18.01.2017


Ответы (1)


Я думаю, что суммирование не работает, потому что ваши числа имеют текстовый формат.

Посмотрите, работает ли что-нибудь из этого? (изменить диапазоны в соответствии с требованиями)

используя ФИЛЬТР()

=SUM(FILTER(VALUE(AllData!C:C),AllData!A:A="/chestnut/",AllData!B:B="desktop"))

используя QUERY()

=ArrayFormula(QUERY({AllData!A:B, VALUE(AllData!C:C)}, "SELECT SUM(Col3) WHERE Col1='/chestnut/' AND Col2='desktop' label SUM(Col3)''",1))

используя СУММПРОИЗВ()

=SUMPRODUCT(VALUE(AllData!C2:C),AllData!A2:A="/chestnut/",AllData!B2:B="desktop")
person JPV    schedule 18.01.2017