Как да използвате функцията QUERY на Google Sheets - стандартни клаузи и алтернативен инструмент

  • Споделя Това
Michael Brown

Ако следите този блог от известно време, може би си спомняте за функцията QUERY за Google Sheets. Споменах я като възможно решение за няколко случая. Но това далеч не е достатъчно, за да разкрием пълния ѝ потенциал. Днес е крайно време да се запознаем правилно с този супергерой на електронните таблици. И познайте какво - там ще има и един също толкова забележителен инструмент :)

Знаете ли, че функцията QUERY на Google Sheets се смята за най-мощната в електронните таблици? Нейният специфичен синтаксис позволява извършването на десетки различни операции. Нека се опитаме да разбием нейните части, за да ги научим веднъж завинаги, нали?

    Синтаксис на Google Sheets QUERY функция

    На пръв поглед Google Sheets QUERY е просто още една функция с 1 незадължителен и 2 задължителни аргумента:

    =QUERY(данни, заявка, [заглавия])
    • данни е обхватът за обработка. Изисква се. Тук всичко е пределно ясно.

      Забележка. Тук има само едно малко напомняне, установено от Google: всяка колона трябва да съдържа един тип данни: текстови, или числови, или булеви. Ако има различни типове, QUERY ще работи с този, който се среща най-често. Другите типове ще се считат за празни клетки. Странно, но имайте това предвид.

    • заявка е начинът за обработка на данни ... Изисква се. Тук започва цялата забава. Функцията QUERY на Google Sheets използва специален език за този аргумент: Език на заявките за API за визуализация на Google . Написана е по начин, подобен на SQL. В общи линии това е набор от специални клаузи (команди), които се използват, за да се каже на функцията какво да прави: селектиране, групиране по, ограничаване и т.н.

      Забележка: Целият аргумент трябва да бъде ограден в двойни кавички. Стойностите, на свой ред, трябва да бъдат оградени в кавички.

    • заглавия не е задължителен, когато трябва да посочите броя на заглавните редове в данните си. Пропуснете аргумента (както правя по-долу) и Google Sheets QUERY ще го приеме въз основа на съдържанието на вашата таблица.

    Сега нека се задълбочим в клаузите и тяхното предназначение.

    Клаузи, използвани в Google Sheets QUERY формули

    Езикът на заявките се състои от 10 клаузи. На пръв поглед те може да ви уплашат, особено ако не сте запознати със SQL. Но обещавам, че щом ги опознаете, ще получите на разположение мощно оръжие за електронни таблици.

    Ще разгледам всяка клауза и ще дам примери за формули, като използвам този списък с въображаеми ученици и техните теми за работа:

    Да, аз съм един от онези чудаци, които смятат, че Плутон трябва да е планета :)

    Съвет: В рамките на една функция QUERY на Google Sheets могат да се използват няколко клаузи. Ако вложите всички тях, не забравяйте да спазвате реда на появата им в тази статия.

    Избиране (всички или определени колони)

    Първата клауза - изберете - се използва за посочване на колоните, които трябва да се върнат с Google Sheets QUERY от друг лист или таблица.

    Пример 1. Избиране на всички колони

    За извличане на всяка колона използвайте изберете със звездичка - изберете *

    =QUERY(Papers!A1:G11, "изберете *")

    Съвет. Ако пропуснете изберете параметър, Google Sheets QUERY ще върне всички колони по подразбиране:

    =QUERY(Papers!A1:G11)

    Пример 2. Избор на конкретни колони

    За да изтеглите само определени колони, избройте ги след изберете клауза:

    =QUERY(Papers!A1:G11, "изберете A,B,C")

    Съвет. Колоните, които ви интересуват, ще бъдат копирани в същия ред, в който сте ги посочили във формулата:

    =QUERY(Papers!A1:G11, "изберете C,B,A")

    Google Таблици ЗАПИТВАНЕ - Къде клауза

    Запитване в Google Таблици където се използва за задаване на условия за данните, които искате да получите. С други думи, той действа като филтър.

    Ако използвате тази клауза, QUERY функция за Google Sheets ще търси колони за стойности, които отговарят на вашите условия и извличане на всички съвпадения обратно към вас.

    Съвет. Къде: може да функционира без изберете клауза.

    Както обикновено, за да се определят условията, има набори от специални оператори за вас:

    • прости оператори за сравнение ( за числови стойности ): =, ,>,>=, <, <=
    • оператори за комплексно сравнение ( за низове ): съдържа, започва с, завършва с, съвпада, != (не съвпада / не е равно на), като .
    • логически оператори към комбиниране на няколко условия : и, или, не .
    • оператори за празен / не празен : is null, is not null .

    Съвет: Ако сте разстроени или се притеснявате, че отново ще трябва да се справяте с такъв огромен брой оператори, ние ви разбираме. Нашите множествени Vlookup Matches ще намерят всички съвпадения и ще изградят QUERY формули в Google Sheets за вас, ако е необходимо.

    Нека видим как се държат тези оператори във формулите.

    Пример 1. Къде: с числа

    Ще добавя където към моята заявка в Google Sheets от по-горе, за да получите информация за тези планети, които имат повече от 10 луни:

    =QUERY(Papers!A1:G11, "изберете A,B,C,F където F>=10")

    Съвет. Споменах и колона F, която да се извлича, само за да се уверите, че критерият е изпълнен. Но това е напълно незадължително. Не е необходимо да включвате колони с условия в резултата:

    =QUERY(Papers!A1:G11, "изберете A,B,C където F>=10")

    Пример 2. Къде: с текстови низове

    • Искам да видя всички редове, в които класът е или F или F+ . ще използвам съдържа оператор за това:

      =QUERY(Papers!A1:G11, "изберете A,B,C,G където G съдържа 'F'")

      Забележка: Не забравяйте да оградите текста си с кавички.

    • За да получите всички редове с F само, просто заменете съдържа със знак за равенство (=):

      =QUERY(Papers!A1:G11, "изберете A,B,C,G където G="F"")

    • За да проверите документите, които все още не са предадени (където липсва оценка), проверете колоната G за празни полета:

      =QUERY(Papers!A1:G11, "изберете A,B,C,G където G е нула")

    Пример 3. Къде: с дати

    Познайте какво: Google Sheets QUERY дори успя да опитоми датите!

    Тъй като електронните таблици съхраняват датите като серийни номера, обикновено се налага да прибягвате до помощта на специални функции като DATE или DATEVALUE, YEAR, MONTH, TIME и др.

    Но QUERY е намерил начин да се справи с датите. За да ги въведете правилно, просто въведете думата дата и след това добавете самата дата, форматирана като гггг-мм-дд: дата '2020-01-01'

    Ето моята формула за получаване на всички редове с дата на речта преди 1 януари 2020 г:

    =QUERY(Papers!A1:G11, "изберете A,B,C където B

    Пример 4. Комбиниране на няколко условия

    За да използвате определен период от време като критерий, трябва да комбинирате две условия.

    Нека се опитаме да извлечем онези документи, които са били доставени през есента на 2019 г. Първият критерий трябва да бъде дата на или след 1 септември 2019 г. , а втората - на или преди 30 ноември 2019 г. :

    =QUERY(Papers!A1:G11, "избери A,B,C където B>=датата '2019-09-01' и B<=датата '2019-11-30'")

    Или мога да избера документи въз основа на тези параметри:

    • преди 31 декември 2019 г. ( B )
    • имат оценка A или A+ ( G съдържа 'A' )
    • или B/B+ ( G съдържа 'B' )

    =QUERY(Papers!A1:G11, "изберете A,B,C,G където B

    Съвет: Ако главата ви вече е на път да се пръсне, не се отказвайте още. Има инструмент, който е напълно способен да изгради всички тези формули вместо вас, независимо от броя на критериите. Прескочете до края на статията, за да се запознаете с него.

    Запитване в Google Таблици - Група по

    Запитване в Google Таблици група от Командата се използва за обединяване на редове. Въпреки това трябва да използвате някои функции за агрегиране, за да ги обобщите.

    Забележка. Група по трябва винаги да следва изберете клауза.

    За съжаление в моята таблица няма какво да се групира, тъй като няма повтарящи се стойности. Затова нека я коригирам малко.

    Да предположим, че всички работи ще бъдат подготвени само от 3 ученици. Мога да намеря най-високата оценка, която е получил всеки ученик. Но тъй като те са букви, това е функцията MIN, която трябва да приложа към колона G:

    =QUERY(Papers!A1:G11, "изберете A,min(G) група от A")

    Забележка: Ако не използвате агрегираща функция с някоя колона в изберете клауза (колона A в моя пример), трябва да ги дублирате всички в група от клауза.

    Google Таблици ЗАПИТВАНЕ - Pivot

    Запитване в Google Таблици шарнир Клаузата работи по обратния начин, ако мога така да се изразя. Тя пренася данните от една колона в ред с нови колони, като съответно групира други стойности.

    За тези от вас, които се занимават с дати, това може да бъде истинско откритие. Ще можете да получите бърз поглед върху всички отделни години от тази колона на източника.

    Забележка: Когато става въпрос за шарнир , всяка колона, използвана в изберете клаузата трябва да бъде покрита с агрегираща функция. В противен случай тя трябва да бъде посочена в група от след вашата команда шарнир .

    Помнете, че в моята таблица сега има само 3 ученици. Ще накарам функцията да ми каже колко доклада е направил всеки ученик:

    =QUERY(Papers!A1:G11, "изберете брояч(G) pivot A")

    Запитване в Google Таблици - Поръчай по

    Това е доста лесно :) Използва се за сортиране на резултатите по стойностите в определени колони.

    Съвет. Всички предишни клаузи не са задължителни, когато използвате поръчка по . Използвам изберете за връщане на по-малък брой колони с демонстрационна цел.

    Нека се върнем към първоначалната ми таблица и сортираме отчетите по дата на изказване.

    Тази следваща формула на Google Sheets QUERY ще ми даде колони А, Б и В, но в същото време ще ги подреди по дата в колона Б:

    =QUERY(Papers!A1:G11, "избери A,B,C ред по B")

    Ограничение

    Какво ще кажете, ако ви кажа, че не е нужно да въвеждате всеки ред в резултата? Какво ще кажете, ако ви кажа, че Google Sheets QUERY може да изтегли само определен брой от първите съвпадения, които намира?

    Е, на ограничение Тя ограничава броя на върнатите редове със зададеното число.

    Съвет. Не се колебайте да използвате ограничение без други предходни клаузи.

    Тази формула ще покаже първите 5 реда, в които колоната с оценките съдържа оценка (не е празна):

    =QUERY(Papers!A1:G11, "изберете A,B,C,G където G не е нула граница 5")

    Офсет

    Тази клауза е противоположна на предишната. Докато ограничение ще получите посочения от вас брой редове, офсет прескача ги и извлича останалите.

    Съвет. Офсет също не изисква други клаузи.

    =QUERY(Papers!A1:G11, "изберете A,B,C,G където G не е нула компенсира 5")

    Ако се опитате да използвате и двете ограничение и офсет , ще се случи следното:

    1. Офсет ще прескочи редовете в началото.
    2. Ограничение ще върне брой от следните редове.

    =QUERY(Papers!A1:G11, "изберете A,B,C,G където G не е нула граница 3 компенсира 3")

    От 11 реда данни (първият е заглавие и функцията QUERY в Google Sheets се справя добре с това), офсетът пропуска първите 3 реда. Limit връща 3 следващи реда (като започва от 4-тия):

    Запитване в Google Таблици - Етикет

    Запитване в Google Таблици етикет ви позволява да променяте имената на заглавията на колоните.

    Съвет. Други клаузи не са задължителни за етикет също така.

    Поставете етикет първо, последвано от идентификатора на колоната и новото име. Ако преименувате няколко колони, отделяйте всяка нова двойка колона-етикет със запетая:

    =QUERY(Papers!A1:G11, "избери A,B,C етикет A 'Име', B 'Дата'")

    Формат

    Сайтът формат Клаузата дава възможност за промяна на формата на всички стойности в дадена колона. За целта ще ви е необходим шаблон, който стои зад желания формат.

    Съвет. Клаузата за формат може да се използва и самостоятелно в заявката за търсене в Google Sheets.

    =QUERY(Papers!A1:G11, "избери A,B,C граница 3 формат B 'mm-dd, гггг, ddd'")

    Съвет. В тази публикация в блога споменах някои формати на дати за Google Sheets QUERY. Други формати могат да бъдат взети директно от електронни таблици: Format> Number> More Formats> Потребителски формат на числата .

    Опции

    Тази опция се използва за задаване на някои допълнителни настройки за данните за резултатите.

    Например, команда като no_values ще върне само форматирани клетки.

    Най-бързият начин за изграждане на QUERY формули - Множество Vlookup съвпадения

    Колкото и мощна да е функцията QUERY в Google Sheets, може да се наложи да я усвоите. Едно е да илюстрирате всяка клауза поотделно в малка таблица, а съвсем друго е да се опитате да изградите всичко правилно с няколко клаузи и много по-голяма таблица.

    Ето защо решихме да облечем Google Sheets QUERY в удобен за потребителя интерфейс и да го превърнем в добавка.

    Защо множествените съвпадения на VLOOKUP са по-добри от формулите?

    С добавката има няма нужда да :

    • да разберете нищо за тези клаузи . Много е лесно да създавате много сложни условия в добавката: толкова, колкото ви е необходимо, въпреки реда им, за да получите толкова много съвпадения, колкото ви е необходимо.

      Забележка. Към момента в инструмента са включени следните клаузи: select, where, limit, и офсет . Ако задачата ви изисква и други клаузи, моля, коментирайте по-долу - може би ще ни помогнете да се подобрим ;)

    • да знаете как да въвеждане на оператори : просто изберете един от тях от падащ списък.
    • да си задавате въпроси правилното начин за въвеждане на дата и час . Добавката ви позволява да ги въвеждате както досега, в зависимост от местоположението на електронната таблица.

      Съвет. В инструмента винаги има налична подсказка с примери за различни типове данни.

    Като бонус , ще можете да:

    • преглед както на резултат и формулата
    • направете бързи настройки на вашите критерии
    • изберете място за резултата
    • вмъкнете резултата като едновременно Формула QUERY или като стойности

    Не се шегувам, вижте сами. Въпреки че този GIF е ускорен, ми отне по-малко от минута, за да настроя всички критерии и да получа резултата:

    Ако сте достатъчно любопитни, ето един подробен видеоклип, който показва как работи добавката:

    Надявам се, че ще дадете шанс на добавката и ще я вземете от Google Workspace Marketplace. Не се притеснявайте и споделете отзивите си, особено ако има нещо в нея, което не ви харесва.

    Също така можете да разгледате страницата с уроци или началната страница.

    Майкъл Браун е отдаден технологичен ентусиаст със страст към опростяване на сложни процеси с помощта на софтуерни инструменти. С повече от десетилетие опит в технологичната индустрия, той е усъвършенствал уменията си в Microsoft Excel и Outlook, както и в Google Sheets и Docs. Блогът на Майкъл е посветен на споделянето на неговите знания и опит с други, предоставяйки лесни за следване съвети и уроци за подобряване на продуктивността и ефективността. Независимо дали сте опитен професионалист или начинаещ, блогът на Michael предлага ценни прозрения и практически съвети за извличане на максимума от тези основни софтуерни инструменти.