#arrays #google-sheets #google-query-language
#массивы #google-таблицы #google-query-language
Вопрос:
Привет и заранее спасибо!
У меня есть рабочая тетрадь Google Sheets, в которой 56 листов загружаются данными непосредственно из Google forms. внутри рабочей книги есть еще один лист, который является моим основным листом, который должен консолидировать данные из всех 56 рабочих книг. Я попробовал использовать функцию запроса, но проблема в том, что было объединено слишком много данных, и теперь у нас нет идентификатора, с какого листа были взяты записи.
Вот как пишется запрос:
=QUERY({'3637'!A2:N;'3636'!A2:N;'3635'!A2:N;'3634'!A2:N;'3633'!A2:N;'3632'!A2:N;'3631'!A2:N;'3537'!A2:N;'3536'!A2:N;'3535'!A2:N;'3534'!A2:N;'3533'!A2:N;'3532'!A2:N;'3531'!A2:N;'3441'!A2:N;'3440'!A2:N;'3439'!A2:N;'3438'!A2:N;'3437'!A2:N;'3436'!A2:N;'3435'!A2:N;'3434'!A2:N;'3433'!A2:N;'3432'!A2:N;'3431'!A2:N;'3341'!A2:N; '3340'!A2:N;'3339'!A2:N;'3338'!A2:N;'3337'!A2:N;'3336'!A2:N;'3335'!A2:N; '3334'!A2:N; '3333'!A2:N; '3332'!A2:N; '3331'!A2:N; '3241'!A2:N; '3240'!A2:N; '3239'!A2:N; '3238'!A2:N; '3237'!A2:N; '3236'!A2:N; '3235'!A2:N; '3234'!A2:N; '3233'!A2:N; '3232'!A2:N; '3231'!A2:N; '3139'!A2:N; '3138'!A2:N; '3137'!A2:N; '3136'!A2:N; '3135'!A2:N; '3134'!A2:N; '3133'!A2:N; '3132'!A2:N; '3131'!A2:N}, "select * where Col1 is not null",0)
В идеале мы хотели бы иметь возможность определить, с какого рабочего листа были взяты эти объединяемые записи. Есть ли способ сделать это, например, жестко запрограммировать имена рабочих листов для каждого массива, объявленного в коде?
Ответ №1:
попробуй:
=ARRAYFORMULA(QUERY({
{'3637'!A2:N, 3637amp;ZZZ2:ZZZ};
{'3636'!A2:N, 3636amp;ZZZ2:ZZZ};
{'3635'!A2:N, 3635amp;ZZZ2:ZZZ};
{'3634'!A2:N, 3634amp;ZZZ2:ZZZ};
{'3633'!A2:N, 3633amp;ZZZ2:ZZZ};
{'3632'!A2:N, 3632amp;ZZZ2:ZZZ};
{'3631'!A2:N, 3631amp;ZZZ2:ZZZ};
{'3537'!A2:N, 3537amp;ZZZ2:ZZZ};
{'3536'!A2:N, 3536amp;ZZZ2:ZZZ};
{'3535'!A2:N, 3535amp;ZZZ2:ZZZ};
{'3534'!A2:N, 3534amp;ZZZ2:ZZZ};
{'3533'!A2:N, 3533amp;ZZZ2:ZZZ};
{'3532'!A2:N, 3532amp;ZZZ2:ZZZ};
{'3531'!A2:N, 3531amp;ZZZ2:ZZZ};
{'3441'!A2:N, 3441amp;ZZZ2:ZZZ};
{'3440'!A2:N, 3440amp;ZZZ2:ZZZ};
{'3439'!A2:N, 3439amp;ZZZ2:ZZZ};
{'3438'!A2:N, 3438amp;ZZZ2:ZZZ};
{'3437'!A2:N, 3437amp;ZZZ2:ZZZ};
{'3436'!A2:N, 3436amp;ZZZ2:ZZZ};
{'3435'!A2:N, 3435amp;ZZZ2:ZZZ};
{'3434'!A2:N, 3434amp;ZZZ2:ZZZ};
{'3433'!A2:N, 3433amp;ZZZ2:ZZZ};
{'3432'!A2:N, 3432amp;ZZZ2:ZZZ};
{'3431'!A2:N, 3431amp;ZZZ2:ZZZ};
{'3341'!A2:N, 3341amp;ZZZ2:ZZZ};
{'3340'!A2:N, 3340amp;ZZZ2:ZZZ};
{'3339'!A2:N, 3339amp;ZZZ2:ZZZ};
{'3338'!A2:N, 3338amp;ZZZ2:ZZZ};
{'3337'!A2:N, 3337amp;ZZZ2:ZZZ};
{'3336'!A2:N, 3336amp;ZZZ2:ZZZ};
{'3335'!A2:N, 3335amp;ZZZ2:ZZZ};
{'3334'!A2:N, 3334amp;ZZZ2:ZZZ};
{'3333'!A2:N, 3333amp;ZZZ2:ZZZ};
{'3332'!A2:N, 3332amp;ZZZ2:ZZZ};
{'3331'!A2:N, 3331amp;ZZZ2:ZZZ};
{'3241'!A2:N, 3241amp;ZZZ2:ZZZ};
{'3240'!A2:N, 3240amp;ZZZ2:ZZZ};
{'3239'!A2:N, 3239amp;ZZZ2:ZZZ};
{'3238'!A2:N, 3238amp;ZZZ2:ZZZ};
{'3237'!A2:N, 3237amp;ZZZ2:ZZZ};
{'3236'!A2:N, 3236amp;ZZZ2:ZZZ};
{'3235'!A2:N, 3235amp;ZZZ2:ZZZ};
{'3234'!A2:N, 3234amp;ZZZ2:ZZZ};
{'3233'!A2:N, 3233amp;ZZZ2:ZZZ};
{'3232'!A2:N, 3232amp;ZZZ2:ZZZ};
{'3231'!A2:N, 3231amp;ZZZ2:ZZZ};
{'3139'!A2:N, 3139amp;ZZZ2:ZZZ};
{'3138'!A2:N, 3138amp;ZZZ2:ZZZ};
{'3137'!A2:N, 3137amp;ZZZ2:ZZZ};
{'3136'!A2:N, 3136amp;ZZZ2:ZZZ};
{'3135'!A2:N, 3135amp;ZZZ2:ZZZ};
{'3134'!A2:N, 3134amp;ZZZ2:ZZZ};
{'3133'!A2:N, 3133amp;ZZZ2:ZZZ};
{'3132'!A2:N, 3132amp;ZZZ2:ZZZ};
{'3131'!A2:N, 3131amp;ZZZ2:ZZZ}},
"where Col1 is not null", 0))
Комментарии:
1. Выглядит отлично, спасибо! Будет использовать его в другом проекте с sheets! Я уже нашел обходной путь, внедрив формулу массива, которая вернет имя листа для каждой записи строки в Google Sheets, которая, по сути, копируется вместе с моим исходным запросом к основному файлу.