Ako používať funkciu Google Sheets QUERY - štandardné klauzuly a alternatívny nástroj

  • Zdieľajte To
Michael Brown

Ak sledujete tento blog už dlhšie, možno si spomínate na funkciu QUERY pre Google Sheets. Spomínal som ju ako možné riešenie pre pár prípadov. Tie však zďaleka nestačia na to, aby sme odhalili jej plný potenciál. Dnes je najvyšší čas, aby sme sa s týmto superhrdinom tabuľkových procesorov poriadne zoznámili. A hádajte čo - jeden nemenej pozoruhodný nástroj tam bude tiež :)

Vedeli ste, že funkcia QUERY v tabuľkovom procesore Google Sheets je považovaná za najvýkonnejšiu v tabuľkovom procesore? Jej zvláštna syntax podporuje desiatky rôznych operácií. Pokúsime sa rozobrať jej časti a naučiť sa ich raz a navždy, však?

    Syntax funkcie Google Sheets QUERY

    Na prvý pohľad je funkcia Google Sheets QUERY len ďalšou funkciou s 1 nepovinným a 2 povinnými argumentmi:

    =QUERY(dáta, dotaz, [hlavičky])
    • údaje je rozsah na spracovanie. Potrebné. Všetko je tu úplne jasné.

      Poznámka: Len jedna malá pripomienka, ktorú tu zaviedla spoločnosť Google: každý stĺpec by mal obsahovať jeden typ údajov: textové, alebo číselné, alebo logické. Ak sú rôzne typy, QUERY bude pracovať s tým, ktorý sa vyskytuje najčastejšie. Ostatné typy sa budú považovať za prázdne bunky. Je to zvláštne, ale majte to na pamäti.

    • dotaz je spôsob spracovania údaje ... Potrebné. Tu sa začína celá zábava. Funkcia Google Sheets QUERY používa pre tento argument špeciálny jazyk: Vizualizačné rozhranie API Google Query Language . Je napísaný podobným spôsobom ako SQL. V podstate ide o súbor špeciálnych klauzúl (príkazov), ktoré slúžia na to, aby funkcia vedela, čo má robiť: select, group by, limit atď.

      Poznámka: Celý argument musí byť uzavretý v dvojitých úvodzovkách. Hodnoty by zasa mali byť uzavreté v úvodzovkách.

    • hlavičky je nepovinný, ak potrebujete uviesť počet riadkov záhlavia vo vašich údajoch. Vynechajte tento argument (ako to robím ja nižšie) a Google Sheets QUERY ho bude predpokladať na základe obsahu vašej tabuľky.

    Teraz sa pozrime hlbšie na jednotlivé klauzuly a na to, čo robia.

    Doložky používané vo vzorcoch Google Sheets QUERY

    Dotazovací jazyk sa skladá z 10 klauzúl. Na prvý pohľad môžu vystrašiť, najmä ak nepoznáte jazyk SQL. Ale sľubujem, že keď sa s nimi zoznámite, získate k dispozícii mocnú tabuľkovú zbraň.

    Budem sa zaoberať jednotlivými klauzulami a uvediem príklady vzorcov pomocou tohto zoznamu imaginárnych študentov a ich papierových predmetov:

    Áno, som jeden z tých čudákov, ktorí si myslia, že Pluto by malo byť planéta :)

    Tip. V rámci jednej funkcie QUERY v tabuľke Google Sheets môžete použiť viacero klauzúl. Ak ich všetky vnoríte, nezabudnite dodržať poradie ich výskytu v tomto článku.

    Vybrať (všetky alebo konkrétne stĺpce)

    Úplne prvá veta - vybrať - sa používa na určenie stĺpcov, ktoré potrebujete vrátiť pomocou dotazu Google Sheets QUERY z iného hárku alebo tabuľky.

    Príklad 1. Výber všetkých stĺpcov

    Ak chcete načítať každý stĺpec, použite vybrať s hviezdičkou - vyberte *

    =QUERY(Papers!A1:G11, "select *")

    Tip. Ak vynecháte vybrať parameter, Google Sheets QUERY vráti všetky stĺpce predvolene:

    =QUERY(Papers!A1:G11)

    Príklad 2. Výber konkrétnych stĺpcov

    Ak chcete vytiahnuť len niektoré stĺpce, uveďte ich za vybrať doložka:

    =QUERY(Papers!A1:G11, "select A,B,C")

    Tip. Stĺpce, ktoré vás zaujímajú, sa skopírujú v rovnakom poradí, v akom ste ich uviedli vo vzorci:

    =QUERY(Papers!A1:G11, "select C,B,A")

    Google Sheets QUERY - Kde klauzula

    Hárky Google QUERY kde sa používa na nastavenie podmienok pre údaje, ktoré chcete získať. Inými slovami, funguje ako filter.

    Ak použijete túto klauzulu, QUERY funkcia pre Google Sheets bude hľadať stĺpce pre hodnoty, ktoré spĺňajú vaše podmienky a načítať všetky zhody späť k vám.

    Tip. Kde môže fungovať bez vybrať doložka.

    Ako zvyčajne, na špecifikáciu podmienok existujú sady špeciálnych operátori pre vás:

    • jednoduché operátory porovnávania ( pre číselné hodnoty ): =, ,>,>=, <, <=
    • komplexné operátory porovnávania ( pre reťazce ): obsahuje, začína sa, končí sa, zodpovedá, != (nezodpovedá / nerovná sa), ako .
    • logické operátory na kombinovať niekoľko podmienok : a, alebo, nie .
    • operátori pre prázdne / nie prázdne : je null, nie je null .

    Tip. Ak ste rozrušení alebo sa obávate, že sa budete musieť opäť zaoberať takým obrovským počtom operátorov, cítime s vami. Naše viacnásobné vyhľadávanie zhody nájde všetky zhody a v prípade potreby za vás zostaví vzorce QUERY v tabuľkách Google.

    Pozrime sa, ako sa tieto operátory správajú vo vzorcoch.

    Príklad 1. Kde s číslami

    Pridám kde do môjho dotazu v tabuľkách Google z vyššie uvedeného, aby ste získali informácie o tých planétach, ktoré majú viac ako 10 mesiacov:

    =QUERY(Papers!A1:G11, "select A,B,C,F where F>=10")

    Tip. Spomínal som aj stĺpec F, ktorý sa má načítať len preto, aby ste sa uistili, že je splnené kritérium. Je to však úplne voliteľné. Nemusíte do výsledku zahrnúť stĺpce s podmienkami:

    =QUERY(Papers!A1:G11, "select A,B,C where F>=10")

    Príklad 2. Kde s textovými reťazcami

    • Chcem zobraziť všetky riadky, v ktorých je známka buď F alebo F+ . použijem obsahuje operátor na to:

      =QUERY(Papers!A1:G11, "select A,B,C,G where G contains 'F'")

      Poznámka: Nezabudnite text obklopiť úvodzovkami.

    • Získanie všetkých riadkov s F len nahradiť obsahuje so znamienkom rovnosti (=):

      =QUERY(Papers!A1:G11, "select A,B,C,G where G="F"")

    • Ak chcete skontrolovať práce, ktoré ešte neboli doručené (kde chýba známka), skontrolujte stĺpec G pre prázdne polotovary:

      =QUERY(Papers!A1:G11, "select A,B,C,G where G is null'")

    Príklad 3. Kde s dátumami

    Hádajte čo: Google Sheets QUERY sa podarilo skrotiť aj dátumy!

    Keďže tabuľkové procesory ukladajú dátumy ako poradové čísla, zvyčajne sa musíte uchýliť k pomoci špeciálnych funkcií, ako sú DATE alebo DATEVALUE, YEAR, MONTH, TIME atď.

    QUERY však našiel spôsob, ako sa zaobísť s dátumami. Ak ich chcete správne zadať, jednoducho zadajte slovo dátum a potom pridajte samotný dátum formátovaný ako rrrr-mm-dd: dátum '2020-01-01'

    Tu je môj vzorec na získanie všetkých riadkov s dátumom reči pred 1. januárom 2020:

    =QUERY(Papers!A1:G11, "select A,B,C where B

    Príklad 4. Kombinácia niekoľkých podmienok

    Ak chcete ako kritérium použiť určité časové obdobie, musíte skombinovať dve podmienky.

    Skúsme vyhľadať tie dokumenty, ktoré boli doručené na jeseň 2019. Prvým kritériom by mal byť dátum 1. septembra 2019 alebo neskôr , druhý - najneskôr do 30. novembra 2019 :

    =QUERY(Papers!A1:G11, "select A,B,C where B>=date '2019-09-01' and B<=date '2019-11-30'")

    Alebo môžem vybrať dokumenty na základe týchto parametrov:

    • do 31. decembra 2019 ( B )
    • majú známku A alebo A+ ( G obsahuje 'A' )
    • alebo B/B+ ( G obsahuje 'B' )

    =QUERY(Papers!A1:G11, "select A,B,C,G where B

    Tip: Ak vám už teraz praská hlava, ešte to nevzdávajte. Existuje nástroj, ktorý za vás dokáže dokonale zostaviť všetky tieto vzorce bez ohľadu na počet kritérií. Prejdite až na koniec článku a zoznámte sa s ním.

    Hárky Google QUERY - Skupina podľa

    Hárky Google QUERY skupina podľa Príkaz sa používa na spájanie riadkov. Na ich sumarizáciu by ste však mali použiť niektoré agregačné funkcie.

    Poznámka. Skupina podľa sa musí vždy riadiť vybrať doložka.

    Bohužiaľ, v mojej tabuľke nie je čo zoskupovať, pretože v nej nie sú žiadne opakujúce sa hodnoty. Preto ju trochu upravím.

    Predpokladajme, že všetky práce majú vypracovať len 3 študenti. Môžem zistiť najvyššiu známku, ktorú dostal každý študent. Ale keďže sú to písmená, je to funkcia MIN, ktorú by som mal použiť na stĺpec G:

    =QUERY(Papers!A1:G11, "select A,min(G) group by A")

    Poznámka: Ak nepoužijete agregačnú funkciu s niektorým stĺpcom v vybrať klauzula (stĺpec A v mojom príklade), musíte ich všetky duplikovať v skupina podľa doložka.

    Hárky Google QUERY - Pivot

    Hárky Google QUERY pivot Klauzula funguje opačne, ak to tak môžem povedať. Prenáša údaje z jedného stĺpca do riadku s novými stĺpcami a podľa toho zoskupuje ostatné hodnoty.

    Pre tých z vás, ktorí sa zaoberajú dátumami, to môže byť skutočný objav. Z tohto zdrojového stĺpca budete môcť získať rýchly prehľad o všetkých odlišných rokoch.

    Poznámka: Pokiaľ ide o pivot , každý stĺpec použitý v vybrať klauzula by mala byť pokrytá agregačnou funkciou. V opačnom prípade by mala byť uvedená v skupina podľa príkaz po vašom pivot .

    Nezabudnite, že v mojej tabuľke sú teraz uvedení len 3 študenti. Funkciu prinútim, aby mi povedala, koľko správ každý študent vytvoril:

    =QUERY(Papers!A1:G11, "select count(G) pivot A")

    Hárky Google QUERY - Poradie podľa

    Toto je celkom jednoduché :) Používa sa na zoradenie výsledku podľa hodnôt v určitých stĺpcoch.

    Tip. Všetky predchádzajúce doložky sú pri použití objednať podľa . Používam vybrať vrátiť menej stĺpcov na demonštračné účely.

    Vráťme sa k mojej pôvodnej tabuľke a zoraďme správy podľa dátumu prejavu.

    Tento ďalší vzorec Google Sheets QUERY mi stĺpce A, B a C, ale zároveň ich zoradí podľa dátumu v stĺpci B:

    =QUERY(Papers!A1:G11, "select A,B,C order by B")

    Limit

    Čo keby som vám povedal, že nemusíte do výsledku vkladať každý riadok? Čo keby som vám povedal, že Google Sheets QUERY môže vytiahnuť len určité množstvo prvých nájdených zhody?

    No, na limit Doložka je určená na to, aby vám s tým pomohla. Obmedzuje počet riadkov, ktoré sa majú vrátiť, daným číslom.

    Tip. Neváhajte použiť limit bez ďalších predchádzajúcich doložiek.

    Tento vzorec zobrazí prvých 5 riadkov, v ktorých stĺpec so známkami obsahuje známku (nie je prázdny):

    =QUERY(Papers!A1:G11, "select A,B,C,G where G is not null limit 5")

    Ofset

    Toto ustanovenie je trochu opačné ako predchádzajúce. limit vám poskytne zadaný počet riadkov, ofset ich preskočí a získa zvyšok.

    Tip. Ofset nevyžaduje ani žiadne ďalšie doložky.

    =QUERY(Papers!A1:G11, "select A,B,C,G where G is not null offset 5")

    Ak sa pokúsite použiť obe limit a ofset , stane sa nasledovné:

    1. Ofset preskočí riadky na začiatku.
    2. Limit vráti počet nasledujúcich riadkov.

    =QUERY(Papers!A1:G11, "select A,B,C,G where G is not null limit 3 offset 3")

    Z 11 riadkov údajov (prvý riadok je hlavička a funkcia QUERY v tabuľkách Google tomu dobre rozumie), offset preskočí prvé 3 riadky. Limit vráti 3 ďalšie riadky (počnúc 4. riadkom):

    Hárky Google QUERY - Štítok

    Hárky Google QUERY štítok umožňuje zmeniť názvy hlavičiek stĺpcov.

    Tip. Ostatné doložky sú nepovinné pre štítok tiež.

    Vložte štítok najprv ID stĺpca a potom nový názov. Ak premenujete niekoľko stĺpcov, oddeľte každý nový pár stĺpec-názov čiarkou:

    =QUERY(Papers!A1:G11, "select A,B,C label A 'Name', B 'Date'")

    Formát

    Stránka formát klauzula umožňuje zmeniť formát všetkých hodnôt v stĺpci. Na to budete potrebovať vzor stojaci za požadovaným formátom.

    Tip: Doložka o formáte môže hrať samostatnú úlohu aj v hárkoch Google QUERY.

    =QUERY(Papers!A1:G11, "select A,B,C limit 3 formát B 'mm-dd, rrrr, ddd'")

    Tip: V tomto príspevku som uviedol niektoré formáty dátumu pre hárky Google QUERY. Ostatné formáty môžete prevziať priamo z tabuľkových hárkov: Formát> Číslo> Ďalšie formáty> Vlastný formát čísla .

    Možnosti

    Táto položka sa používa na nastavenie niektorých ďalších nastavení pre výsledné údaje.

    Napríklad taký príkaz ako no_values vráti iba formátované bunky.

    Najrýchlejší spôsob, ako vytvoriť QUERY vzorce - Multiple Vlookup Matches

    Akokoľvek je funkcia QUERY v tabuľkách Google Sheets výkonná, môže si vyžadovať učenie. Jedna vec je ilustrovať každú klauzulu samostatne na malej tabuľke a úplne iná vec je pokúsiť sa všetko správne zostaviť pomocou niekoľkých klauzúl a oveľa väčšej tabuľky.

    Preto sme sa rozhodli obliecť aplikáciu Google Sheets QUERY do používateľsky prívetivého rozhrania a vytvoriť z nej doplnok.

    Prečo je viacnásobná zhoda VLOOKUP lepšia ako vzorce?

    S doplnkom je k dispozícii absolútne nie je potrebné :

    • zistiť čokoľvek o týchto doložky . V doplnku je naozaj jednoduché vytvoriť množstvo zložitých podmienok: toľko, koľko potrebujete, napriek ich poradiu, aby ste získali toľko zhody, koľko potrebujete.

      Poznámka: V súčasnosti boli do nástroja zapracované tieto ustanovenia: select, where, limit, a ofset Ak si vaša úloha vyžaduje aj iné klauzuly, vyjadrite sa k nim nižšie - možno nám pomôžete zlepšiť sa ;)

    • vedieť, ako zadajte operátorov : stačí vybrať z rozbaľovacieho zoznamu.
    • hádanka nad správne spôsob zadávania dátumu a času . Doplnok vám umožní zadávať ich tak, ako ste zvyknutí, na základe lokality tabuľky.

      Tip. V nástroji je vždy k dispozícii nápoveda s príkladmi rôznych typov údajov.

    Ako bonus , budete môcť:

    • náhľad aj výsledok a vzorec
    • vytvoriť rýchle úpravy podľa vašich kritérií
    • vybrať miesto pre výsledok
    • vložte výsledok ako aj Vzorec QUERY alebo ako hodnoty

    Nežartujem, presvedčte sa sami. Hoci bol tento GIF zrýchlený, doladenie všetkých kritérií a získanie výsledku mi trvalo menej ako minútu:

    Ak ste dostatočne zvedaví, tu je podrobné video, ktoré ukazuje, ako doplnok funguje:

    Dúfam, že dáte doplnku šancu a zaobstaráte si ho z trhoviska Google Workspace Marketplace. Nehanbite sa a podeľte sa o svoje pripomienky, najmä ak sa vám na ňom niečo nepáči.

    Pozrite si aj jeho stránku s návodmi alebo domovskú stránku.

    Michael Brown je nadšený technologický nadšenec s vášňou pre zjednodušovanie zložitých procesov pomocou softvérových nástrojov. S viac ako desaťročnými skúsenosťami v technologickom priemysle si zdokonalil svoje zručnosti v programoch Microsoft Excel a Outlook, ako aj Tabuľky Google a Dokumenty. Michaelov blog je venovaný zdieľaniu svojich vedomostí a odborných znalostí s ostatnými a poskytuje jednoduché tipy a návody na zlepšenie produktivity a efektivity. Či už ste skúsený profesionál alebo začiatočník, Michaelov blog ponúka cenné poznatky a praktické rady, ako z týchto základných softvérových nástrojov vyťažiť maximum.