Оглавление
Если вы давно следите за этим блогом, вы можете помнить функцию QUERY для Google Sheets. Я упоминал ее как возможное решение для нескольких случаев. Но этого далеко не достаточно, чтобы раскрыть весь ее потенциал. Сегодня самое время познакомиться с этим супергероем электронных таблиц как следует. И знаете что - один не менее примечательный инструмент тоже будет там :)
Знаете ли вы, что функция QUERY в Google Sheets считается самой мощной в электронных таблицах? Ее своеобразный синтаксис позволяет выполнять десятки различных операций. Давайте попробуем разбить ее на части, чтобы изучить их раз и навсегда, не так ли?
Синтаксис функции QUERY в Google Sheets
На первый взгляд, Google Sheets QUERY - это просто еще одна функция с 1 необязательным и 2 обязательными аргументами:
=QUERY(data, query, [headers])- данные это диапазон для обработки. Требуется. Здесь все предельно ясно.
Примечание. Только одно небольшое напоминание, установленное Google: каждый столбец должен содержать один тип данных: текстовый, числовой или булев. Если есть разные типы, QUERY будет работать с тем, который встречается чаще всего. Другие типы будут рассматриваться как пустые ячейки. Странно, но имейте это в виду.
- запрос это способ обработки данные . Требуется. Здесь начинается самое интересное. Функция Google Sheets QUERY использует специальный язык для этого аргумента: Язык запросов API визуализации Google По сути, это набор специальных пунктов (команд), используемых для указания функции, что делать: select, group by, limit и т.д..
Примечание. Весь аргумент должен быть заключен в двойные кавычки. Значения, в свою очередь, должны быть заключены в кавычки.
- заголовки необязателен для тех случаев, когда вам нужно указать количество строк заголовка в ваших данных. Опустите этот аргумент (как я делаю ниже), и Google Sheets QUERY примет его, основываясь на содержимом вашей таблицы.
Теперь давайте подробнее разберемся с пунктами и тем, что они делают.
Клаузы, используемые в формулах Google Sheets QUERY
Язык запросов состоит из 10 пунктов. На первый взгляд они могут испугать, особенно если вы не знакомы с SQL. Но обещаю, как только вы познакомитесь с ними, в вашем распоряжении окажется мощное оружие для работы с электронными таблицами.
Я собираюсь рассмотреть каждый пункт и привести примеры формул, используя этот список воображаемых студентов и их бумажных предметов:
Да, я один из тех чудаков, которые считают, что Плутон должен быть планетой :)
Совет. В одной функции Google Sheets QUERY можно использовать несколько пунктов. Если вы вложите их все, обязательно соблюдайте порядок их появления в этой статье.
Выбрать (все или определенные столбцы)
Самый первый пункт - выберите - используется для указания, какие столбцы нужно вернуть с помощью Google Sheets QUERY из другого листа или таблицы.
Пример 1. Выбрать все столбцы
Чтобы получить каждый столбец, используйте выберите со звездочкой - выберите *
=QUERY(Papers!A1:G11, "select *")
Совет. Если вы опустите выберите параметр, Google Sheets QUERY будет возвращать все столбцы по умолчанию:
=QUERY(Papers!A1:G11)
Пример 2. Выбор определенных столбцов
Чтобы извлечь только определенные столбцы, перечислите их после строки выберите пункт:
=QUERY(Papers!A1:G11, "select A,B,C")
Совет. Интересующие вас столбцы будут скопированы в том же порядке, в котором вы упомянули их в формуле:
=QUERY(Papers!A1:G11, "select C,B,A")
Google Sheets QUERY - пункт Where
Google Sheets QUERY где используется для задания условий в отношении данных, которые вы хотите получить. Другими словами, он действует как фильтр.
Если вы используете этот пункт, функция QUERY для Google Sheets будет искать в столбцах значения, соответствующие вашим условиям, и возвращать вам все совпадения.
Совет. Где может функционировать без выберите пункт.
Как обычно, для определения условий существуют наборы специальных операторы для вас:
- простые операторы сравнения ( для числовых значений ): =, ,>,>=, <, <=
- комплексные операторы сравнения ( для струн ): содержит, начинается с, заканчивается, совпадает, != (не совпадает / не равно), как .
- логические операторы для сочетать несколько условий : и, или, не .
- операторы для пустой / не пустой : является нулевым, не является нулевым .
Совет. Если вы расстроены или обеспокоены тем, что вам снова придется иметь дело с таким огромным количеством операторов, мы вам сочувствуем. Наш Multiple Vlookup Matches найдет все совпадения и при необходимости построит для вас формулы QUERY в Google Sheets.
Давайте посмотрим, как эти операторы ведут себя в формулах.
Пример 1. Где с цифрами
Я добавлю где к моему вышеприведенному QUERY из Google Sheets, чтобы получить информацию о тех планетах, у которых более 10 лун:
=QUERY(Papers!A1:G11, "select A,B,C,F where F>=10")
Совет. Я также упомянул столбец F для выборки, чтобы убедиться, что критерий выполнен. Но это совершенно необязательно. Вы не обязаны включать столбцы с условиями в результат:
=QUERY(Papers!A1:G11, "select A,B,C where F>=10")
Пример 2. Где с текстовыми строками
- Я хочу увидеть все строки, в которых оценка либо F или F+ Я буду использовать содержит оператор для этого:
=QUERY(Papers!A1:G11, "select A,B,C,G where G contains 'F'")
Примечание. Не забудьте заключить свой текст в кавычки.
- Чтобы получить все строки с F только, просто замените содержит со знаком равенства (=):
=QUERY(Papers!A1:G11, "select A,B,C,G where G="F"")
- Чтобы проверить работы, которые еще не сданы (где оценка отсутствует), проверьте колонку G для пустых мест:
=QUERY(Papers!A1:G11, "select A,B,C,G where G is null'")
Пример 3. Где с датами
Угадайте что: Google Sheets QUERY удалось приручить даже даты!
Поскольку электронные таблицы хранят даты как порядковые номера, обычно приходится прибегать к помощи специальных функций типа ДАТА или ДАТЕВАЛЮТА, ГОД, МЕСЯЦ, ВРЕМЯ и т.д.
Но QUERY нашел способ обходить даты. Чтобы ввести их правильно, просто введите слово дата а затем добавить саму дату, отформатированную как yyyy-mm-dd: дата '2020-01-01'
Вот моя формула для получения всех строк с датой выступления до 1 января 2020 года:
=QUERY(Papers!A1:G11, "select A,B,C where B
Пример 4. Комбинируйте несколько условий
Чтобы использовать определенный период времени в качестве критерия, необходимо объединить два условия.
Давайте попробуем извлечь те работы, которые были сданы осенью 2019 г. Первым критерием должна быть дата 1 сентября 2019 года или позднее , второй - не позднее 30 ноября 2019 года :
=QUERY(Papers!A1:G11, "select A,B,C where B>=date '2019-09-01' and B<=date '2019-11-30'")
Или я могу отобрать работы по этим параметрам:
- до 31 декабря 2019 года ( B
) - имеют в качестве оценки либо A, либо A+ ( G содержит 'A' )
- или B/B+ ( G содержит 'B' )
=QUERY(Papers!A1:G11, "select A,B,C,G where B
Совет. Если ваша голова уже готова взорваться, не сдавайтесь. Существует инструмент, который способен построить для вас все эти формулы, независимо от количества критериев. Перейдите прямо к концу статьи, чтобы познакомиться с ним.
Google Sheets QUERY - Group By
Google Sheets QUERY группа по Команда используется для объединения строк. Однако для их суммирования следует использовать некоторые агрегатные функции.
Примечание. Группа по должны всегда следовать выберите пункт.
К сожалению, в моей таблице нечего группировать, так как нет повторяющихся значений. Поэтому позвольте мне немного подкорректировать ее.
Предположим, что все работы должны быть подготовлены только 3 студентами. Я могу найти наивысшую оценку, которую получил каждый студент. Но так как это буквы, то я должен применить функцию MIN к столбцу G:
=QUERY(Papers!A1:G11, "select A,min(G) group by A")
Примечание. Если вы не используете агрегатную функцию ни с одним столбцом в выберите условие (колонка A в моем примере), вы должны продублировать их все в группа по пункт.
Google Sheets QUERY - Pivot
Google Sheets QUERY поворот Пункт работает, если можно так выразиться, наоборот. Он переносит данные из одного столбца в строку с новыми столбцами, соответствующим образом группируя другие значения.
Для тех, кто имеет дело с датами, это может стать настоящим открытием. Вы сможете получить быстрый взгляд на все отдельные годы из этой исходной колонки.
Примечание. Когда речь идет о поворот каждый столбец, используемый в выберите должен быть покрыт агрегатной функцией. В противном случае, он должен быть упомянут в группа по команда, следующая за вашей поворот .
Помните, что в моей таблице сейчас упоминаются только 3 студента. Я собираюсь сделать так, чтобы функция сообщала мне, сколько докладов сделал каждый студент:
=QUERY(Papers!A1:G11, "select count(G) pivot A")
Google Sheets QUERY - Order By
Это довольно просто :) Он используется для сортировки итогов по значениям в определенных столбцах.
Совет. Все предыдущие пункты являются необязательными при использовании заказ . Я использую выберите чтобы вернуть меньшее количество столбцов в демонстрационных целях.
Давайте вернемся к моей исходной таблице и отсортируем отчеты по дате выступления.
Следующая формула Google Sheets QUERY получит столбцы A, B и C, но в то же время отсортирует их по дате в столбце B:
=QUERY(Papers!A1:G11, "select A,B,C order by B")
Ограничение
Что если я скажу вам, что вам не нужно приводить каждую строку в результат? Что если я скажу вам, что Google Sheets QUERY может извлечь только определенное количество первых найденных совпадений?
Что ж. ограничение Предложение призвано помочь вам в этом. Оно ограничивает количество возвращаемых строк заданным числом.
Совет. Не стесняйтесь использовать ограничение без других предыдущих пунктов.
Эта формула покажет первые 5 строк, в которых столбец с оценками содержит отметку (не пуст):
=QUERY(Papers!A1:G11, "select A,B,C,G where G is not null limit 5")
Смещение
Это положение как бы противоположно предыдущему. В то время как ограничение получает указанное вами количество строк, смещение пропускает их, извлекая остальные.
Совет. Смещение также не требует никаких других оговорок.
=QUERY(Papers!A1:G11, "select A,B,C,G where G is not null offset 5")
Если вы попытаетесь использовать оба ограничение и смещение произойдет следующее:
- Смещение будет пропускать строки в начале.
- Ограничение вернет ряд следующих строк.
=QUERY(Papers!A1:G11, "select A,B,C,G where G is not null limit 3 offset 3")
Из 11 строк данных (первая - заголовок, и функция QUERY в Google Sheets прекрасно это понимает), offset пропускает первые 3 строки. Limit возвращает 3 следующие строки (начиная с 4-й):
Google Sheets QUERY - Label
Google Sheets QUERY этикетка позволяет изменить названия заголовков столбцов.
Совет. Другие пункты являются необязательными для этикетка также.
Положите этикетка сначала идентификатор столбца, затем идентификатор столбца и новое имя. Если вы переименовываете несколько столбцов, отделяйте каждую новую пару столбец-метка запятой:
=QUERY(Papers!A1:G11, "select A,B,C label A 'Name', B 'Date'")
Формат
Сайт формат позволяет изменить формат всех значений в столбце. Для этого вам понадобится шаблон, стоящий за желаемым форматом.
Совет. Пункт форматирования также может играть сольную роль в QUERY Google Sheets.
=QUERY(Papers!A1:G11, "select A,B,C limit 3 format B 'mm-dd, yyyy, ddd'")
Совет. В этой статье я упомянул некоторые форматы дат для Google Sheets QUERY. Другие форматы можно взять непосредственно из электронных таблиц: Формат> Число> Другие форматы> Пользовательский формат числа .
Опции
Этот параметр используется для установки некоторых дополнительных настроек для итоговых данных.
Например, такая команда, как никакие_значения будет возвращать только отформатированные ячейки.
Самый быстрый способ построения формул QUERY - Множественные совпадения Vlookup
Какой бы мощной ни была функция QUERY в Google Sheets, для ее освоения может потребоваться кривая обучения. Одно дело - иллюстрировать каждый пункт отдельно в небольшой таблице, и совсем другое - пытаться построить все правильно с помощью нескольких пунктов и гораздо большей таблицы.
Именно поэтому мы решили облачить Google Sheets QUERY в удобный интерфейс и сделать его дополнением.
Почему множественные совпадения VLOOKUP лучше, чем формулы?
Ну, с дополнением есть абсолютно не нужно :
- выяснить ничего о тех. статьи В дополнении очень легко создать множество сложных условий: столько, сколько вам нужно, несмотря на их порядок, чтобы получить столько совпадений, сколько вам нужно.
Примечание. На данный момент в инструмент включены следующие пункты: select, where, limit, и смещение Если в вашей задаче требуются и другие пункты, пожалуйста, прокомментируйте их ниже - возможно, вы поможете нам улучшить ситуацию ;)
- знать, как вводить операторы : просто выбирайте из выпадающего списка.
- ломать голову правильный способ ввода даты и времени Дополнение позволяет вводить их, как раньше, на основе локали вашей электронной таблицы.
Совет. В инструменте всегда есть подсказка с примерами различных типов данных.
В качестве бонус вы сможете:
- предварительный просмотр оба результат и формула
- сделать быстрые регулировки в соответствии с вашими критериями
- выбрать место для результата
- вставить результат как формула QUERY или в качестве значения
Я не шучу, убедитесь сами. Хотя этот GIF был ускорен, мне потребовалось меньше минуты, чтобы точно настроить все критерии и получить результат:
Если вы достаточно любопытны, вот подробное видео, показывающее, как работает дополнение:
Я надеюсь, что вы дадите дополнению шанс и приобретете его в Google Workspace Marketplace. Не стесняйтесь и поделитесь своими отзывами, особенно если вам что-то в нем не нравится.
Кроме того, не стесняйтесь заглянуть на его учебную страницу или главную страницу.