Импорт данных из нескольких листов с формулой Query / ImportRange, возвращающей ARRAYLITERAL ERROR - PullRequest
0 голосов
/ 01 июля 2019

У меня есть 2 Google Sheets, которые отслеживают посещаемость занятий для наших двух основных сайтов, и каждая вкладка на листе - это отдельный класс / курс. Каждый лист имеет вкладку «данные», которая извлекает все данные класса / курса. Я пытаюсь вытащить таблицы данных из этих двух листов и поместить их на 3-й лист и организовать данные класса с помощью программы (GED, CDP, ESL). У меня не было проблем с извлечением данных с одного листа, но когда я пытался сложить формулы Query и Importrange, я продолжал получать ошибку ARRAY LITERAL , что отсутствует строка.

Моя оригинальная формула была

={QUERY(IMPORTRANGE("1avE5TJIDVNL7_wqjDLPgocZuecr5Aoz7aI3cI5yIe34", "Data!A3:Ak1000"), "SELECT Col1, Col2, Col3, Col4, Col5, Col6, Col7, Col26, Col27, Col28, Col29 WHERE Col3 CONTAINS 'ESL' AND Col7>0");QUERY(IMPORTRANGE("10q7kBUJVTw62p1cCZjUIR1CsFSev9Ik6q4K-X-RK40Y", "Data!A3:Ak1000"), "SELECT Col1, Col2, Col3, Col4, Col5, Col6, Col7, Col26, Col27, Col28, Col29 WHERE Col3 CONTAINS 'ESL' AND Col7>0")}

и было выдано сообщение об ошибке VALUE, что в ARRAY LITERAL отсутствовали строки.

Основываясь на рекомендациях других сайтов, я попробовал формулу (ниже), но получил сообщение ОШИБКА синтаксического анализа формулы и попытался переместить фигурные скобки вокруг формулы ImportRange, но продолжил получать СООБЩЕНИЕ ОБ ОШИБКЕ ФОРМЫ

=QUERY{(IMPORTRANGE("1avE5TJIDVNL7_wqjDLPgocZuecr5Aoz7aI3cI5yIe34", "Data!A3:Ak1000");IMPORTRANGE("10q7kBUJVTw62p1cCZjUIR1CsFSev9Ik6q4K-X-RK40Y", "Data!A3:Ak1000")},"SELECT Col1, Col2, Col3, Col4, Col5, Col6, Col7, Col26, Col27, Col28, Col29 WHERE Col3 CONTAINS 'ESL' AND Col7>0")

Я ожидаю, что в выходных данных будут перечислены все классы, содержащие "ESL" в Col3 и соответствующие столбцы из обоих листов.

1 Ответ

0 голосов
/ 01 июля 2019

понимание ARRAY_LITERAL ERROR :

если оба запроса что-то выводят, тогда все хорошо:

0

однако, если один из этих запросов не имеет ничего для вывода, он выводит #N/A, но проблема в том, что #N/A находится только в 1-й ячейке:

e

но массив ожидает, что матрица с обеих сторон будет одинаковой (4 столбца из обоих запросов):

0

, поэтому мы заключаем каждый запрос в IFERROR и в случае ошибки выводим поддельную строку с 4 поддельными столбцами - {"","","",""} - что обманывает массив для его вывода следующим образом:

0

поэтому попробуйте так:

=IFERROR(QUERY({IFERROR(QUERY(IMPORTRANGE(
  "1avE5TJIDVNL7_wqjDLPgocZuecr5Aoz7aI3cI5yIe34", "Data!A3:AK1000"), 
  "select Col1,Col2,Col3,Col4,Col5,Col6,Col7,Col26,Col27,Col28,Col29 
   where Col3 contains 'ESL' 
   and Col7>0", 0), {"","","","","","","","","","",""});
  IFERROR(QUERY(IMPORTRANGE(
 "10q7kBUJVTw62p1cCZjUIR1CsFSev9Ik6q4K-X-RK40Y", "Data!A3:AK1000"), 
  "select Col1,Col2,Col3,Col4,Col5,Col6,Col7,Col26,Col27,Col28,Col29 
   where Col3 contains 'ESL'
   and Col7>0", 0), {"","","","","","","","","","",""})}, 
  "where Col1 is not null", 0))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...