Таблица Google Query Error - столбец не существует

Еще одна проблема с Google Spreadsheet API. Я пытаюсь использовать функцию QUERY(), чтобы получить из нашей базы данных всех клиентов из Варшавы. Google API, однако, похоже, имеет большие проблемы с анализом моего запроса. Я проверил это несколько раз, и все в порядке. Пробные точки с запятой, разные апострофы и имена столбцов - все равно не получится. Я набираю этот код в ячейке листа:

=QUERY(IMPORTRANGE("0ArsOaWajjzv9dEdGTUZCWFc1NnFva05uWkxETVF6Q0E"; "Kuchnia polska!A3:G40"); "select B where E contains 'Warszawa'")

И получи ошибку вот так:

Invalid query: Column [E] does not exist in table.

И я на 110% уверен, что столбец существует, а ключ электронной таблицы в порядке. ;)

Ответ 1

Если вы используете функцию Query с прямой ссылкой на прямоугольник ячеек, вы используете заглавные буквы для обозначения столбцов. Однако, если вы используете Query для вывода формулы массива, например возврата из ImportRange, вам вместо этого нужно использовать Col1, Col2,... для обозначения столбцов. Итак, ваш пример строки запроса нужно будет прочитать:

"select Col2 where Col5 contains 'Warszawa'"

Рабочий пример:

=Query(ImportRange("0AtEH2Kw9zfIodEQ2dFNFam9sdEFEZlVnNEV3ZEZMZEE", "data!A:G"), "select Col3, count(Col4) group by Col3 order by count(Col4) desc label count(Col4) 'count'")

Я понятия не имею, почему это не просто позволяет вам использовать имена из строки заголовка.

Ответ 2

В качестве альтернативы вы можете попробовать функцию FILTER в этом случае, и тогда вам не нужно беспокоиться о SQL. :)

=FILTER(ImportRange("0ArsOaWajjzv9dEdGTUZCWFc1NnFva05uWkxETVF6Q0E"; "Kuchnia polska!B3:B40"); ImportRange("0ArsOaWajjzv9dEdGTUZCWFc1NnFva05uWkxETVF6Q0E"; "Kuchnia polska!e3:e40")="Warszava")

Хотя я признаю, что это не так красиво из-за двух функций importRange.

Надеюсь, это помогло в любом случае.