Динамическая сортировка данных QUERY в Google таблицах
Стоит задача: из столбца с данными нужно вытянуть соответствующие им значения по значениям, которые помещены в раскрывающимся списке в ячейке. Если же в ячейке будет условие, которое не соответствует ни одному из критериев (будет стоять условие «Все») — будет выводиться весь список данных из столбца.
={"Округ";IFERROR(QUERY(B6:C;"select B where C = '"&H6&"'");QUERY(B6:C;"select B"))}
- B6:C — диапазон с данными, из которых выводится список по содержимому в ячейке H6.
- H6 — ячейка с раскрывающимся списком, по которому выводится информация из диапазона B6:C.
- «Округ» — заголовок столбца, в котором выводится необходимая информация.
- IFERROR — проверяет на ошибку запрос по содержимому ячейки H6. Если выводится ошибка — подставляется второй запрос QUERY.
- Амперсант «&» — или конкатенация (сцепка) внутри QUERY запроса.
- QUERY(B6:C;«select B where C = ‘»&H6&«‘») — первый запрос, подставляющий нужные значения, в зависимости от содержимого ячейки H6.
- QUERY(B6:C;«select B») — второй запрос, подставляющийся функцией IFERROR, выводящий все содержимое столбца B.
QUERY, как на другой лист вывести данные по значению в ячейке в Google таблицах?
Рассмотрим еще пример отображения информации из листа со складом на Google таблицах в соседний лист для подготовки массового импорта товаров в сервис.
По легенде, напротив каждого товара стоит статус, по которому Google таблицы определяют: показывать ли строку или нет.
Если стоит статус — то в соседнем листе будет показываться информация с товаром для дальнейшей обработки.
Каждый столбец обозначается в большом SQL запросе через функцию QUERY в Google Sheets и показывает содержимое ячеек.
Такой список товаров динамически обновляется если изменяются статусы (содержимое ячеек).
=QUERY('Склад'!B3:AV;"select B, G, AN, I, J, D, AD, AA, AM, AG, AT, Y, AB, AE, AU, AV, AP, AR, AS where F = 'Facebook' label B 'ID', G 'Title', AN 'Description', I 'Price', J 'Sale_price', D 'Item_group_id', AD 'Product_type', AA 'Google_product_category', AM 'Gtin', AG 'Color', AT 'Gender', Y 'Age_group', AB 'Brand', AE 'Material', AU 'Availability', AV 'Condition', AP 'Link', AR 'Image_link', AS 'Additional_image_link' format I '#,##0 RUB', J '#,##0 RUB' ")
- ‘Склад’!B3:AV — диапазон с данными.
- B, …, AS — столбцы в нужном порядке, в которых содержится информация по товарам.
- F — столбце с раскрывающимся списком, в котором находится статус, дающий команду на отображения информации в итоговом листе.
- ‘#,##0 RUB’ — пользовательский формат числа по условиям площадки, в которую будет массовый импорт товаров.
В итоге, одним запросом можно динамически обновлять списки с данными, заменив в конкретном рабочем примере 18 981 формул на ОДИН запрос QUERY!!!