Jak používat funkci Google Sheets QUERY - standardní klauzule a alternativní nástroj

  • Sdílet Toto
Michael Brown

Pokud tento blog sledujete již delší dobu, možná si vzpomínáte na funkci QUERY pro Google Sheets. Zmínil jsem ji jako možné řešení několika případů. Ty však zdaleka nestačí k tomu, abychom odhalili její plný potenciál. Dnes je nejvyšší čas se s tímto superhrdinou tabulkových procesorů pořádně seznámit. A hádejte co - jeden neméně pozoruhodný nástroj tam bude také :).

Věděli jste, že funkce QUERY v Tabulkách Google je považována za nejmocnější funkci v tabulkových procesorech? Její zvláštní syntaxe umožňuje desítky různých operací. Zkusme si její části rozebrat a naučit se je jednou provždy, že?

    Syntaxe funkce Google Sheets QUERY

    Na první pohled je funkce Google Sheets QUERY jen další funkcí s 1 nepovinným a 2 povinnými argumenty:

    =QUERY(data, query, [headers])
    • data je rozsah, který je třeba zpracovat. Požadováno. Vše je zde naprosto jasné.

      Poznámka: Zde jen malá připomínka zavedená Googlem: každý sloupec by měl obsahovat jeden typ dat: textový, nebo číselný, nebo logický. Pokud jsou různé typy, QUERY bude pracovat s tím, který se vyskytuje nejčastěji. Ostatní typy budou považovány za prázdné buňky. Je to zvláštní, ale mějte to na paměti.

    • dotaz je způsob zpracování data ... Požadováno. Zde začíná celá legrace. Funkce Google Sheets QUERY používá pro tento argument speciální jazyk: Jazyk dotazů Google Visualization API . Je zapsán podobně jako SQL. V podstatě se jedná o sadu speciálních klauzulí (příkazů), které slouží k tomu, aby řekly funkci, co má dělat: select, group by, limit atd.

      Poznámka: Celý argument musí být uzavřen do dvojitých uvozovek. Hodnoty by zase měly být zabaleny do uvozovek.

    • záhlaví je nepovinný, pokud potřebujete uvést počet řádků záhlaví ve vašich datech. Vynechejte tento argument (jako já níže) a Google Sheets QUERY jej bude předpokládat na základě obsahu vaší tabulky.

    Nyní se podíváme hlouběji na jednotlivé klauzule a na to, co dělají.

    Doložky používané ve vzorcích QUERY v Tabulkách Google

    Dotazovací jazyk se skládá z 10 klauzulí. Na první pohled vás mohou vyděsit, zejména pokud SQL neznáte. Ale slibuji, že jakmile se s nimi seznámíte, získáte k dispozici mocnou tabulkovou zbraň.

    Budu se zabývat jednotlivými klauzulemi a uvedu příklady vzorců na základě tohoto seznamu imaginárních studentů a jejich papírových předmětů:

    Jo, jsem jeden z těch podivínů, kteří si myslí, že Pluto by mělo být planetou :)

    Tip: V rámci jedné funkce QUERY v tabulkách Google lze použít několik klauzulí. Pokud je všechny vnoříte, nezapomeňte dodržet pořadí jejich výskytu v tomto článku.

    Vybrat (všechny nebo určité sloupce)

    Hned první věta - vybrat - slouží k určení sloupců, které je třeba vrátit pomocí dotazu z jiného listu nebo tabulky.

    Příklad 1. Výběr všech sloupců

    Chcete-li načíst každý sloupec, použijte vybrat s hvězdičkou - select *

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

    Tip. Pokud vynecháte vybrat parametr, Google Sheets QUERY vrátí všechny sloupce ve výchozím nastavení:

    =QUERY(Papers!A1:G11)

    Příklad 2. Výběr konkrétních sloupců

    Chcete-li vytáhnout pouze určité sloupce, uveďte je za příkazem vybrat doložka:

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

    Tip: Sloupce, které vás zajímají, se zkopírují ve stejném pořadí, v jakém je uvedete ve vzorci:

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

    Google Sheets QUERY - Klauzule kde

    Dotazování v tabulkách Google kde slouží k nastavení podmínek pro data, která chcete získat. Jinými slovy, funguje jako filtr.

    Pokud použijete tuto klauzuli, QUERY funkce pro Google Sheets bude hledat sloupce pro hodnoty, které splňují vaše podmínky a načíst všechny shody zpět k vám.

    Tip. Kde: může fungovat bez vybrat doložka.

    Jako obvykle jsou pro zadání podmínek k dispozici sady speciálních operátoři pro vás:

    • jednoduché operátory porovnávání ( pro číselné hodnoty ): =, ,>,>=, <, <=
    • komplexní operátory porovnávání ( pro řetězce ): obsahuje, začíná s, končí s, odpovídá, != (neodpovídá / nerovná se), podobně jako .
    • logické operátory na kombinovat několik podmínek : a, nebo, ne .
    • operátoři pro prázdný / neprázdný : je null, není null .

    Tip: Pokud jste naštvaní nebo se obáváte, že budete muset znovu řešit tak obrovské množství operátorů, cítíme s vámi. Naše vícenásobné vyhledávání shod najde všechny shody a v případě potřeby za vás sestaví QUERY vzorce v tabulkách Google.

    Podívejme se, jak se tyto operátory chovají ve vzorcích.

    Příklad 1. Kde: s čísly

    Přidám kde k mému dotazu v tabulkách Google z výše uvedeného, abych získal informace o planetách, které mají více než 10 měsíců:

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

    Tip. Zmínil jsem také sloupec F, který se má načíst jen proto, aby bylo jisté, že je kritérium splněno. Je to ale zcela volitelné. Sloupce s podmínkami do výsledku zahrnovat nemusíte:

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

    Příklad 2. Kde: s textovými řetězci

    • Chci zobrazit všechny řádky, kde je třída buď F nebo F+ . použiji obsahuje operátor pro tento účel:

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

      Poznámka: Nezapomeňte text ohraničit uvozovkami.

    • Získání všech řádků s F pouze nahradit obsahuje se znaménkem rovnosti (=):

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

    • Chcete-li zkontrolovat práce, které ještě nebyly dodány (kde chybí známka), podívejte se do sloupce G pro prázdná místa:

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

    Příklad 3. Kde: s daty

    Hádejte co: Google Sheets QUERY se podařilo zkrotit i data!

    Vzhledem k tomu, že tabulkové procesory ukládají data jako pořadová čísla, je obvykle nutné použít speciální funkce, jako je DATE nebo DATEVALUE, YEAR, MONTH, TIME atd.

    QUERY si však našel cestu k datům. Chcete-li je zadat správně, jednoduše zadejte slovo datum a poté přidejte samotné datum formátované jako rrrr-mm-dd: datum '2020-01-01'

    Zde je můj vzorec pro získání všech řádků s datem řeči před 1. lednem 2020:

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

    Příklad 4. Kombinace několika podmínek

    Chcete-li jako kritérium použít určitý časový úsek, musíte zkombinovat dvě podmínky.

    Zkusme vyhledat ty dokumenty, které byly doručeny na podzim 2019. Prvním kritériem by mělo být datum. 1. září 2019 nebo později , druhý - do 30. listopadu 2019 nebo dříve :

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

    Nebo mohu vybrat dokumenty na základě těchto parametrů:

    • do 31. prosince 2019 ( B )
    • mají známku A nebo A+ ( G obsahuje 'A' )
    • nebo B/B+ ( G obsahuje 'B' )

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

    Tip: Pokud se vám už teď chystá prasknout hlava, ještě to nevzdávejte. Existuje nástroj, který za vás všechny tyto vzorce dokáže dokonale sestavit, a to bez ohledu na počet kritérií. Skočte rovnou na konec článku a seznamte se s ním.

    Tabulky Google QUERY - Seskupit podle

    Dotazování v tabulkách Google skupina podle Příkaz slouží ke spojování řádků. K jejich sumarizaci je však třeba použít některé agregační funkce.

    Poznámka. Skupina podle se musí vždy řídit vybrat doložka.

    V mé tabulce bohužel není co seskupovat, protože se v ní nevyskytují žádné opakující se hodnoty. Proto ji trochu upravím.

    Předpokládejme, že všechny práce mají vypracovat pouze 3 studenti. Mohu zjistit nejvyšší známku, kterou každý student dostal. Ale protože se jedná o písmena, je to funkce MIN, kterou bych měl použít na sloupec G:

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

    Poznámka: Pokud nepoužíváte agregační funkci s žádným sloupcem ve sloupci vybrat klauzule (sloupec A v mém příkladu), musíte je všechny duplikovat v adresáři skupina podle doložka.

    Tabulky Google QUERY - Pivot

    Dotazování v tabulkách Google pivot Klauzule funguje opačně, mohu-li to tak říci. Přenáší data z jednoho sloupce do řádku s novými sloupci a podle toho seskupuje další hodnoty.

    Pro ty z vás, kteří se zabývají daty, to může být skutečný objev. Z tohoto zdrojového sloupce budete moci rychle nahlédnout na všechny odlišné roky.

    Poznámka: Pokud jde o pivot , každý sloupec použitý v vybrat klauzule by měla být pokryta souhrnnou funkcí. Jinak by měla být uvedena v klauzuli skupina podle po příkazu pivot .

    Nezapomeňte, že v mé tabulce jsou nyní uvedeni pouze 3 studenti. Funkci přiměji, aby mi řekla, kolik zpráv každý student vytvořil:

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

    Tabulky Google QUERY - Pořadí podle

    Ten je docela jednoduchý :) Slouží k seřazení výsledku podle hodnot v určitých sloupcích.

    Tip. Při použití všech předchozích klauzulí jsou tyto klauzule nepovinné. objednat podle . Používám vybrat pro demonstrační účely vrátit méně sloupců.

    Vraťme se k mé původní tabulce a seřaďme zprávy podle data projevu.

    Tento další vzorec Google Sheets QUERY mi sloupce A, B a C, ale zároveň je seřadí podle data ve sloupci B:

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

    Limit

    Co kdybych vám řekl, že nemusíte do výsledku zadávat každý řádek? Co kdybych vám řekl, že dotaz v tabulkách Google může vytáhnout pouze určité množství prvních nalezených shod?

    Dobře. limit klauzule je určena k tomu, aby vám s tím pomohla. Omezuje počet řádků, které se mají vrátit, zadaným číslem.

    Tip. Neváhejte použít limit bez dalších předchozích doložek.

    Tento vzorec zobrazí prvních 5 řádků, kde sloupec se známkami obsahuje známku (není prázdný):

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

    Offset

    Toto ustanovení je tak trochu opakem předchozího. Zatímco limit získáte zadaný počet řádků, offset je přeskočí a získá zbytek.

    Tip. Offset také nevyžaduje žádné další doložky.

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

    Pokud se pokusíte použít oba limit a offset , dojde k následujícím událostem:

    1. Offset přeskočí řádky na začátku.
    2. Limit vrátí počet následujících řádků.

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

    Z 11 řádků dat (první je záhlaví a funkce QUERY v tabulkách Google tomu dobře rozumí), offset přeskočí první 3 řádky. Limit vrátí 3 další řádky (počínaje 4.):

    Dotazování v tabulkách Google - Štítek

    Dotazování v tabulkách Google štítek umožňuje změnit názvy záhlaví sloupců.

    Tip. Ostatní doložky jsou nepovinné pro štítek také.

    Vložte štítek nejprve ID sloupce a nový název. Pokud přejmenováváte několik sloupců, oddělte každý nový pár sloupec-název čárkou:

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

    Formát

    Na stránkách formát klauzule umožňuje změnit formát všech hodnot ve sloupci. K tomu budete potřebovat vzor stojící za požadovaným formátem.

    Tip. Formátovací klauzule může hrát samostatnou roli i v dotazu v tabulkách Google.

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

    Tip: V tomto příspěvku jsem se zmínil o některých formátech data pro dotazování v tabulkách Google. Ostatní formáty lze převzít přímo z tabulek: Formát> Číslo> Další formáty> Vlastní formát čísla .

    Možnosti

    Tato položka slouží k nastavení některých dalších nastavení pro výsledná data.

    Například příkazy jako no_values vrátí pouze formátované buňky.

    Nejrychlejší způsob, jak vytvořit QUERY vzorce - Multiple Vlookup Matches

    Jakkoli je funkce QUERY v tabulkách Google Sheets výkonná, může být nutné se ji naučit. Jedna věc je ilustrovat každou klauzuli zvlášť na malé tabulce a úplně jiná věc je pokusit se vše správně sestavit s několika klauzulemi a mnohem větší tabulkou.

    Proto jsme se rozhodli obléknout aplikaci Google Sheets QUERY do uživatelsky přívětivého rozhraní a vytvořit z ní doplněk.

    Proč jsou vícenásobné shody VLOOKUP lepší než vzorce?

    S doplňkem je k dispozici naprosto není třeba :

    • zjistit cokoli o těchto klauzule . V doplňku je opravdu snadné vytvořit spoustu složitých podmínek: tolik, kolik jich potřebujete, navzdory jejich pořadí, abyste získali tolik shod, kolik potřebujete.

      Poznámka: V současné době byly do nástroje začleněny následující doložky: select, where, limit, a offset . Pokud váš úkol vyžaduje i jiné klauzule, komentujte je prosím níže - možná nám pomůžete se zlepšit ;)

    • vědět, jak zadejte operátory : stačí vybrat z rozevíracího seznamu.
    • hádanka nad správný způsob zadávání data a času . Doplněk vám umožní zadávat je tak, jak jste zvyklí, na základě lokalizace tabulky.

      Tip: V nástroji je vždy k dispozici nápověda s příklady různých typů dat.

    Jako bonus , budete moci:

    • náhled i výsledek a vzorec
    • vytvořit rychlé úpravy podle vašich kritérií
    • vybrat a místo pro výsledek
    • vložit výsledek jako oba Vzorec QUERY nebo jako hodnoty

    Nedělám si legraci, přesvědčte se sami. I když byl tento GIF zrychlený, trvalo mi méně než minutu, než jsem doladil všechna kritéria a získal výsledek:

    Pokud jste dostatečně zvědaví, zde je podrobné video, které ukazuje, jak doplněk funguje:

    Doufám, že dáte doplňku šanci a pořídíte si ho z Google Workspace Marketplace. Nestyďte se a podělte se o své názory, zejména pokud se vám na něm něco nelíbí.

    Můžete se také podívat na jeho stránku s výukovými programy nebo domovskou stránku.

    Michael Brown je oddaný technologický nadšenec s vášní pro zjednodušování složitých procesů pomocí softwarových nástrojů. S více než desetiletými zkušenostmi v technologickém průmyslu zdokonalil své dovednosti v aplikacích Microsoft Excel a Outlook a také v Tabulkách a Dokumentech Google. Michaelův blog je věnován sdílení jeho znalostí a odborných znalostí s ostatními a poskytuje snadno pochopitelné tipy a návody pro zlepšení produktivity a efektivity. Ať už jste zkušený profesionál nebo začátečník, Michaelův blog nabízí cenné postřehy a praktické rady, jak tyto základní softwarové nástroje co nejlépe využít.