Kako koristiti funkciju QUERY Google Sheets – standardne klauzule i alternativni alat

  • Podijeli Ovo
Michael Brown

Ako već neko vrijeme pratite ovaj blog, možda se sjećate funkcije QUERY za Google tabele. Spomenuo sam to kao moguće rješenje za nekoliko slučajeva. Ali to je daleko od dovoljnog da se otkrije njegov puni potencijal. Danas je krajnje vrijeme da dobro upoznamo ovog superheroja tablica. I pogodite šta – jedan jednako vredan alat će biti tu :)

Da li ste znali da se funkcija Google Sheets QUERY smatra najmoćnijom u tabelama? Njegova posebna sintaksa favorizira desetine različitih operacija. Pokušajmo rastaviti njegove dijelove da ih naučimo jednom za svagda, hoćemo li?

    Sintaksa funkcije Google Sheets QUERY

    Na prvi pogled, Google Sheets QUERY je samo još jedna funkcija sa 1 opcionim i 2 obavezna argumenta:

    =QUERY(podaci, upit, [zaglavlja])
    • podaci je opseg za obradu. Obavezno. Ovde je sve kristalno jasno.

      Napomena. Samo jedan mali podsjetnik koji je ovdje ustanovio Google: svaka kolona treba da sadrži jednu vrstu podataka: tekstualne, numeričke ili logičke. Ako postoje različite vrste, QUERY će raditi s onim koji se najčešće pojavljuje. Druge vrste će se smatrati praznim ćelijama. Čudno, ali imajte to na umu.

    • upit je način obrade podataka . Obavezno. Ovdje počinje sva zabava. Funkcija QUERY Google tablica koristi poseban jezik za ovaj argument: Google Visualization APIkriterij
    • odaberite mjesto za rezultat
    • ubacite rezultat kao QUERY formulu ili kao vrijednosti

    Ne šalim se, uvjerite se sami. Iako je ovaj GIF bio ubrzan, trebalo mi je manje od minute da fino podesim sve kriterije i dobijem rezultat:

    Ako ste dovoljno znatiželjni, evo detaljnog video koji pokazuje kako dodatak radi:

    Nadam se da ćete dati priliku dodatku i nabaviti ga sa Google Workspace Marketplace-a. Nemojte se sramiti i podijelite svoje povratne informacije, pogotovo ako postoji nešto u vezi s tim što vam se ne sviđa.

    Također, slobodno provjerite njegovu stranicu sa uputama ili početnu stranicu.

    Jezik upita. Napisan je na način sličan SQL-u. U osnovi, to je skup specijalnih klauzula (naredbi) koji se koriste da kažu funkciji šta da radi: odabrati, grupirati prema, ograničiti, itd.

    Napomena. Cijeli argument mora biti stavljen u dvostruke navodnike. Vrijednosti bi, zauzvrat, trebale biti umotane u navodnike.

  • zaglavlja je opciono kada trebate navesti broj redova zaglavlja u vašim podacima. Izostavite argument (kao što radim u nastavku), a Google Sheets QUERY će ga pretpostaviti na osnovu sadržaja vaše tabele.
  • Ajmo sada da kopamo dublje u klauzule i šta god one rade.

    Klauzule koje se koriste u Google Sheets QUERY formulama

    Jezik upita sastoji se od 10 klauzula. Oni mogu uplašiti na prvi pogled, posebno ako niste upoznati sa SQL-om. Ali obećavam vam, kada ih jednom upoznate, dobit ćete moćno oružje za proračunske tablice na raspolaganju.

    Pokriti ću svaku klauzulu i dati primjere formule koristeći ovu listu zamišljenih učenika i njihovih predmeta na papiru :

    Da, ja sam jedan od onih čudaka koji misle da bi Pluton trebao biti planet :)

    Savjet. Nekoliko klauzula se može koristiti unutar jedne Google Sheets QUERY funkcije. Ako ih sve ugnijezdite, svakako slijedite redoslijed njihovog pojavljivanja u ovom članku.

    Select (sve ili određene kolone)

    Prva klauzula – select – koristi se da kaže koje stupce trebate vratiti s Google Sheets QUERYsa drugog lista ili tabele.

    Primjer 1. Odaberite sve stupce

    Da dohvatite svaku kolonu, koristite select sa zvjezdicom – select *

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

    Savjet. Ako izostavite parametar select , Google Sheets QUERY će vratiti sve kolone prema zadanim postavkama:

    =QUERY(Papers!A1:G11)

    Primjer 2. Odaberite određene stupce

    Da povučete samo određene kolone , navedite ih nakon klauzule select :

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

    Savjet. Kolone od interesa će se kopirati istim redoslijedom kojim ih spominjete u formuli:

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

    Google Sheets QUERY – Gdje klauzula

    Google Listovi QUERY gdje se koriste za postavljanje uslova prema podacima koje želite dobiti. Drugim riječima, djeluje kao filter.

    Ako koristite ovu klauzulu, funkcija QUERY za Google tablice će pretraživati ​​stupce za vrijednosti koje ispunjavaju vaše uslove i vraćati vam sva podudaranja.

    Savjet. Gdje može funkcionirati bez select klauzule.

    Kao i obično, da biste specificirali uslove, postoje skupovi posebnih operatora za vas:

    • jednostavnih operatora poređenja ( za numeričke vrijednosti ): =, , >, >=, <, <=
    • kompleksni operatori poređenja ( za nizove ): sadrži, počinje sa, završava se with, odgovara, != (ne odgovara / nije jednako), kao .
    • logički operatori za kombinaciju nekoliko uslova : i, ili, ne .
    • operatori za prazno/ nije prazno : je null, nije null .

    Savjet. Ako ste uznemireni ili zabrinuti zbog ponovnog suočavanja s tolikim brojem operatera, osjećamo vas. Naša višestruka podudaranja Vlookup pronaći će sva podudaranja i izgraditi QUERY formule u Google tablicama za vas ako je potrebno.

    Da vidimo kako se ovi operatori ponašaju u formulama.

    Primjer 1. Gdje sa brojevima

    Dodat ću gdje u svoje Google tablice UPIT odozgo da dobijete informacije o onim planetama koje imaju više od 10 mjeseci:

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

    Savjet. Također sam spomenuo stupac F za dohvaćanje samo da bih bio siguran da je kriterij ispunjen. Ali potpuno je opciono. Ne morate uključiti stupce sa uvjetima u rezultat:

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

    Primjer 2. Gdje s tekstualnim nizovima

    • Želim vidjeti svi redovi u kojima je ocjena ili F ili F+ . Za to ću koristiti sadrži operator:

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

      Napomena. Ne zaboravite svoj tekst okružiti navodnicima.

    • Da biste dobili sve redove samo sa F , samo zamijenite sadrži znakom jednakosti (=):

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

    • Da provjerite radove koji tek treba da budu isporučeni (gdje nedostaje ocjena), provjerite u koloni G prazna mjesta:

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

    Primjer 3. Gdje s datumima

    Pogodi šta: Google Tablice QUERY je čak uspio ukrotiti datume!

    Pošto proračunske tablice pohranjuju datume kao serijske brojeve, obično moratepribjegavajte pomoći posebnim funkcijama kao što su DATE ili DATEVALUE, YEAR, MONTH, TIME, itd.

    Ali QUERY je pronašao svoj put oko datuma. Da biste ih ispravno unijeli, jednostavno upišite riječ datum , a zatim dodajte sam datum formatiran kao gggg-mm-dd: datum '2020-01-01'

    Evo moje formule za dobivanje svih redova s ​​datumom govora prije 1. januara 2020.:

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

    Primjer 4. Kombinirajte nekoliko uslova

    Da biste koristili određeni vremenski period kao kriterijum, moraćete da kombinujete dva uslova.

    Pokušajmo da preuzmemo one radove koji su dostavljeni u jesen 2019. Prvi kriterijum treba da bude datum dan ili nakon 1. rujna 2019. , drugi — na dan ili prije 30. studenog 2019. :

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

    Ili, ja može odabrati radove na osnovu ovih parametara:

    • prije 31. decembra 2019. ( B )
    • imaju ili A ili A+ kao ocjenu ( G sadrži 'A' )
    • ili B/B+ ( G sadrži 'B' )

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

    Savjet. Ako će vam glava već eksplodirati, nemojte još odustati. Postoji alat koji je savršeno sposoban da napravi sve ove formule za vas, bez obzira na broj kriterijuma. Skočite pravo na kraj članka da ga upoznate.

    Google Sheets QUERY – Grupiraj po

    Google Sheets QUERY group by naredba se koristi za spajanje redova. Međutim, trebali biste koristiti neke agregatne funkcije kako biste ih sumirali.

    Napomena. Grupiraj po uvijek mora slijediti klauzulu select .

    Nažalost, u mojoj tabeli nema ništa za grupisanje jer nema ponavljajućih vrijednosti. Dozvolite mi da to malo prilagodim.

    Pretpostavimo da sve radove pripremaju samo 3 studenta. Mogu pronaći najvišu ocjenu koju je svaki učenik dobio. Ali pošto su to slova, to je MIN funkcija koju bih trebao primijeniti na stupac G:

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

    Napomena. Ako ne koristite agregatnu funkciju s bilo kojim stupcem u select klauzuli (kolona A u mom primjeru), morate ih sve duplicirati u grupi po klauzula.

    Google Sheets QUERY – Pivot

    Google Sheets QUERY pivot klauzula radi obrnuto, ako mogu tako reći. Transponira podatke iz jedne kolone u red s novim stupcima, grupirajući druge vrijednosti u skladu s tim.

    Za one od vas koji se bave datumima, to može biti pravo otkriće. Moći ćete dobiti brzi pogled na sve različite godine iz te izvorne kolone.

    Napomena. Kada je u pitanju pivot , svaki stupac koji se koristi u klauzuli select trebao bi biti pokriven agregatnom funkcijom. U suprotnom, treba ga spomenuti u grupi po naredbi koja slijedi vaš pivot .

    Zapamtite, moja tabela sada pominje samo 3 učenika. Napravit ću funkciju da mi kaže koliko je izvještaja svaki učenik napravio:

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

    Google Sheets QUERY – Naruči po

    Ovaj je prilično lak :) Naviknut jesortirajte rezultat prema vrijednostima u određenim kolonama.

    Savjet. Sve prethodne klauzule su opcione kada se koristi poredak po . Koristim select da vratim manje kolona u svrhu demonstracije.

    Hajde da se vratimo na moju originalnu tabelu i sortirajmo izveštaje po datumu govora.

    Ova sledeća formula QUERY Google tabela će mi dati kolone A, B i C, ali će ih istovremeno sortirati po datumu u stupac B:

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

    Ograničenje

    Šta ako sam vam rekao, ne morate unositi svaki red u rezultat? Šta ako vam kažem da Google Sheets QUERY može izvući samo određeni broj prvih podudaranja koje pronađe?

    Pa, limit klauzula je dizajnirana da vam pomogne u tome. Ograničava broj redova koje treba vratiti zadanim brojem.

    Savjet. Slobodno koristite limit bez drugih prethodnih klauzula.

    Ova formula će prikazati prvih 5 redova u kojima kolona sa ocjenama sadrži oznaku (nije prazna):

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

    Offset

    Ova klauzula je suprotna prethodnoj. Dok vam limit daje broj redova koji odredite, offset ih preskače, preuzimajući ostatak.

    Savjet. Offset također ne zahtijeva nikakve druge klauzule.

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

    Ako pokušate koristiti i limit i offset , dogodit će se sljedeće:

    1. Offset će preskočiti redove na početku.
    2. Limit će vratiti brojsljedeći redovi.

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

    Od 11 redova podataka (prvi je zaglavlje i QUERY funkcija u Google tablicama radi dobar posao razumijevajući to), pomak preskače prvi 3 reda. Limit vraća 3 sljedeća reda (počevši od 4.):

    Google Sheets QUERY – Oznaka

    Google Sheets QUERY oznaka naredba omogućava vam da promijenite nazive zaglavlja kolona.

    Savjet. Druge klauzule su također opcione za oznaku .

    Prvo stavite oznaku , a zatim ID kolone i novo ime. Ako preimenujete nekoliko kolona, ​​odvojite svaki novi par oznaka kolone zarezom:

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

    Format

    The format klauzula omogućava promjenu formata svih vrijednosti u koloni. Za to će vam trebati uzorak koji stoji iza željenog formata.

    Savjet. Klauzula o formatu također može igrati solo u QUERY Google Sheets.

    =QUERY(Papers!A1:G11,"select A,B,C limit 3 format B 'mm-dd, yyyy, ddd'")

    Savjet. Spomenuo sam neke formate datuma za Google Sheets QUERY u ovom postu na blogu. Drugi formati se mogu preuzeti direktno iz tabela: Format > Broj > Više formata > Prilagođeni format broja .

    Opcije

    Ova se koristi za postavljanje nekih dodatnih postavki za podatke o ishodu.

    Na primjer, takva komanda kao što je no_values će vratiti samo formatirane ćelije.

    Najbrži način za pravljenje QUERY formula – višestruka podudaranja Vlookup

    Koliko god moćna bila QUERY funkcija u Google tablicama,možda će biti potrebna kriva učenja da bi se uhvatila u koštac. Jedna je stvar svaku klauzulu posebno ilustrirati na maloj tabeli, a sasvim druga pokušati sve pravilno izgraditi s nekoliko klauzula i mnogo većom tablicom.

    Zato smo odlučili da Google Sheets QUERY obučemo u korisničko sučelje i učinite ga dodatkom.

    Zašto je višestruko podudaranje VLOOKUP bolje od formula?

    Pa, s dodatkom apsolutno nema potrebe za :

    • shvatite bilo šta o tim klauzulama . Zaista je lako stvoriti mnogo složenih uslova u dodatku: onoliko koliko vam je potrebno uprkos njihovom redosledu da dohvatite onoliko utakmica koliko vam je potrebno.

      Napomena. U ovom trenutku, sljedeće klauzule su ugrađene u alat: odaberi, gdje, limit, i offset . Ako vaš zadatak zahtijeva i druge klauzule, komentirajte ispod – možda ćete nam pomoći da poboljšamo ;)

    • znajte kako uneti operatore : samo odaberite onu iz padajuća lista.
    • zagonetka oko ispravnog načina za unos datuma i vremena . Dodatak vam omogućava da ih unesete na način na koji ste navikli na osnovu lokacije za proračunsku tablicu.

      Savjet. U alatu je uvijek dostupan savjet s primjerima različitih tipova podataka.

    Kao bonus , moći ćete:

    • pregledati oba rezultat i formula
    • stvaraju brzo prilagođavanje vašim

    Michael Brown je posvećen tehnološki entuzijasta sa strašću za pojednostavljenje složenih procesa pomoću softverskih alata. Sa više od decenije iskustva u tehnološkoj industriji, usavršio je svoje vještine u Microsoft Excelu i Outlooku, kao i Google Sheets i Docs. Michaelov blog je posvećen dijeljenju svog znanja i stručnosti s drugima, pružajući jednostavne savjete i tutorijale za poboljšanje produktivnosti i efikasnosti. Bilo da ste iskusni profesionalac ili početnik, Michaelov blog nudi vrijedne uvide i praktične savjete za izvlačenje maksimuma iz ovih osnovnih softverskih alata.