Ynhâldsopjefte
As jo dit blog in skoft folge hawwe, kinne jo miskien de QUERY-funksje ûnthâlde foar Google Sheets. Ik neamde it as in mooglike oplossing foar in pear gefallen. Mar dy binne lang net genôch om har folsleine potensjeel te ûntdekken. Hjoed is it heech tiid dat wy dizze spreadsheet-superheld goed kennen leare. En riede wat - ien like opmerklik ark sil der ek wêze :)
Wisten jo dat Google Sheets QUERY-funksje wurdt beskôge as de machtichste yn spreadsheets? Syn eigenaardige syntaksis favors tsientallen ferskillende operaasjes. Litte wy besykje har dielen te brekken om se ienris en foar altyd te learen, sille wy?
Syntaksis fan Google Sheets QUERY-funksje
Op it earste each is Google Sheets QUERY gewoan in oare funksje mei 1 opsjoneel en 2 fereaske arguminten:
=QUERY(data, query, [headers])- data is it berik dat ferwurke wurdt. Required. Alles is hjir kristalhelder.
Opmerking. Allinnich ien lytse herinnering hjir fêststeld troch Google: elke kolom moat ien soart gegevens befetsje: tekstuele, of numerike, of Booleaanske. As d'r ferskate soarten binne, sil QUERY wurkje mei dejinge dy't it meast foarkomt. Oare soarten sille wurde beskôge as lege sellen. Nuver, mar hâld dat yn gedachten.
- fraach is de manier om de gegevens te ferwurkjen. Required. Dit is wêr't alle wille begjint. Google Sheets QUERY-funksje brûkt in spesjale taal foar dit argumint: Google Visualization APIkritearia
- selektearje in plak foar it resultaat
- foegje it resultaat yn as beide QUERY-formule of as wearden
Ik meitsje gjin grapke, sjoch sels. Hoewol dizze GIF waard fersneld, naam it my minder dan in minút om alle kritearia te fine-tunen en it resultaat te krijen:
As jo nijsgjirrich genôch binne, hjir is in detaillearre fideo dy't sjen lit hoe't de add-on wurket:
Ik hoopje dat jo de add-on in kâns jouwe en it krije fan Google Workspace Marketplace. Wês net ferlegen en diel jo feedback, benammen as d'r wat oan is dat jo net leuk fine.
Besjoch ek de tutorialside of thússide derfan.
Query Language. It is skreaun op in manier lykas SQL. Yn prinsipe is it in set fan spesjale klauselen (kommando's) dy't brûkt wurde om de funksje te fertellen wat te dwaan: selektearje, groepearje op, limyt, ensfh.Opmerking. It hiele argumint moat wurde ynsletten yn dûbele quotes. Wearden, op har beurt, moatte wurde ferpakt yn oanhalingstekens.
No litte wy djipper grave yn 'e klausules en wat se ek dogge.
Klausules brûkt yn Google Sheets QUERY formules
Query taal bestiet út 10 klausules. Se kinne op it earste each bang meitsje, foaral as jo net bekend binne mei SQL. Mar ik beloof, as jo se ienris leard hawwe, sille jo in krêftich spreadsheetwapen ta jo beskikking krije.
Ik sil elke klausule dekke en formulefoarbylden leverje mei dizze list mei tinkbyldige studinten en har papieren ûnderwerpen :
Ja, ik bin ien fan dy frjemdlingen dy't tinke dat Pluto in planeet wêze moat :)
Tip. Ferskate klauselen kinne brûkt wurde binnen ien Google Sheets QUERY-funksje. As jo se allegear nestelje, soargje derfoar dat jo de folchoarder fan har uterlik folgje yn dit artikel.
Selektearje (alle of spesifike kolommen)
De alderearste klausule - selektearje - wurdt brûkt om te fertellen hokker kolommen jo moatte weromjaan mei Google Sheets QUERYfan in oar blêd of tabel.
Foarbyld 1. Selektearje alle kolommen
Om elke kolom op te heljen, brûk selektearje mei in asterisk - selektearje *
=QUERY(Papers!A1:G11,"select *")
Tip. As jo de parameter selektearje weilitte, sil Google Sheets QUERY standert alle kolommen weromjaan:
=QUERY(Papers!A1:G11)
Foarbyld 2. Selektearje spesifike kolommen
Om allinich bepaalde kolommen te lûken , list se nei de selektearje -klausule:
=QUERY(Papers!A1:G11, "select A,B,C")
Tip. De kolommen fan belang wurde kopiearre yn deselde folchoarder as jo se neame yn 'e formule:
=QUERY(Papers!A1:G11, "select C,B,A")
Google Sheets QUERY - Wêr-klausule
Google Blêden QUERY dêr't wurdt brûkt om de betingsten yn te stellen foar de gegevens dy't jo krije wolle. Mei oare wurden, it fungearret as in filter.
As jo dizze klausule brûke, sil de QUERY-funksje foar Google Sheets kolommen sykje nei wearden dy't foldogge oan jo betingsten en alle wedstriden nei jo ophelje.
Punt. Wêr kin funksjonearje sûnder de selektearje -klausule.
As gewoanlik, om betingsten op te jaan, binne d'r sets fan spesjale operators foar jo:
- ienfâldige fergelikingsoperators ( foar numerike wearden ): =, , >, >=, <, <=
- komplekse fergelikingsoperators ( foar strings ): befettet, begjint mei, einiget mei, komt oerien, != (komt net oerien / komt net oerien mei), lykas .
- logyske operators om ferskate betingsten te kombinearjen : en, of, net .
- operators foar blank/ net leech : is nul, is net nul .
Tip. As jo oerstjoer binne of benaud binne dat jo wer mei sa'n grut oantal operators te krijen hawwe, fiele wy jo. Us Meardere Vlookup-wedstriden sille alle wedstriden fine en QUERY-formules yn Google Sheets foar jo bouwe as dat nedich is.
Lit sjen hoe't dizze operators har gedrage yn formules.
Foarbyld 1. Wêr mei sifers
Ik sil wêr tafoegje oan myn Google Blêden QUERY fan boppen om de ynformaasje te krijen oer dy planeten dy't mear as 10 moannen hawwe:
=QUERY(Papers!A1:G11,"select A,B,C,F where F>=10")
Tip. Ik neamde ek kolom F om te heljen krekt om te soargjen dat it kritearium foldien wurdt. Mar it is folslein opsjoneel. Jo hoege gjin kolommen mei betingsten op te nimmen yn it resultaat:
=QUERY(Papers!A1:G11,"select A,B,C where F>=10")
Foarbyld 2. Wêr mei tekststrings
- Ik wol sjen alle rigen wêrby't de graad F of F+ is. Ik sil de operator befettet dêrfoar brûke:
=QUERY(Papers!A1:G11,"select A,B,C,G where G contains 'F'")
Opmerking. Ferjit net om jo tekst te omringen mei oanhalingstekens.
- Om alle rigen allinich te krijen mei F , ferfange gewoan befettet mei in lykweardich teken (=):
=QUERY(Papers!A1:G11,"select A,B,C,G where G="F"")
- Om de papieren te kontrolearjen dy't noch moatte wurde levere (wêr't de graad ûntbrekt), kontrolearje kolom G foar blanks:
=QUERY(Papers!A1:G11,"select A,B,C,G where G is null'")
Foarbyld 3. Wêr mei datums
Witsje wat: Google Sheets QUERY is der sels yn slagge om datums te temmen!
Sûnt spreadsheets datums opslaan as serial numbers, moatte jo meastentiidsgebrûk meitsje fan spesjale funksjes lykas DATE of DATEVALUE, YEAR, MONTH, TIME, ensfh.
Mar QUERY hat syn wei fûn om datums hinne. Om se goed yn te fieren, typ gewoan it wurd datum en foegje dan de datum sels ta opmaak as jjjj-mm-dd: datum '2020-01-01'
Hjir is myn formule om alle rigen te krijen mei in spraakdatum foar 1 jannewaris 2020:
=QUERY(Papers!A1:G11,"select A,B,C where B
Foarbyld 4. Kombinearje ferskate betingsten
Om in bepaalde perioade as kritearium te brûken, moatte jo twa betingsten kombinearje.
Litte wy besykje dy papieren werom te heljen dy't yn 'e hjerst 2019 levere binne. De earste kritearia moatte in datum wêze op of nei 1 septimber 2019 , de twadde - op of foar 30 novimber 2019 :
=QUERY(Papers!A1:G11,"select A,B,C where B>=date '2019-09-01' and B<=date '2019-11-30'")
Of, ik kinne papieren selektearje op basis fan dizze parameters:
- foar 31 desimber 2019 ( B
) - ha A as A+ as graad ( G befettet 'A' )
- of B/B+ ( G befettet 'B' )
=QUERY(Papers!A1:G11,"select A,B,C,G where B
Tip. As jo holle al op it punt is om te eksplodearjen, geef dan noch net op. D'r is in ark dat perfekt by steat is om al dizze formules foar jo te bouwen, nettsjinsteande it oantal kritearia. Springe rjochts nei it ein fan it artikel om it te kennen.
Google Sheets QUERY - Groepearje troch
Google Sheets QUERY group by kommando wurdt brûkt om rigen oan te ferbinen. Jo moatte lykwols wat aggregaatfunksjes brûke om se gear te nimmen.
Opmerking. Group by moat altyd de selektearje -klausule folgje.
Spitigernôch is d'r neat te groepearjen yn myn tabel, om't d'r gjin weromkommende wearden binne. Dat lit my it in bytsje oanpasse.
Stel dat alle papieren mar troch 3 learlingen makke wurde moatte. Ik kin de heechste klasse fine dy't elke studint krige. Mar om't it letters binne, is it de MIN-funksje dy't ik tapasse moat op kolom G:
=QUERY(Papers!A1:G11,"select A,min(G) group by A")
Opmerking. As jo gjin aggregatefunksje brûke mei in kolom yn 'e selektearje -klausule (kolom A yn myn foarbyld), moatte jo se allegear duplisearje yn 'e groep troch klausule.
Google Sheets QUERY – Pivot
Google Sheets QUERY pivot -klausule wurket oarsom, as ik dat sizze mei. It transponearret gegevens fan ien kolom nei in rige mei nije kolommen, groepearje oare wearden dêrop.
Foar dyjingen dy't mei datums dwaande binne, kin it in echte ûntdekking wêze. Jo kinne in flugge blik krije op alle ûnderskate jierren út dy boarnekolom.
Opmerking. As it giet om pivot , moat elke kolom brûkt yn 'e selektearje -klausule wurde bedekt mei in aggregaatfunksje. Oars moat it neamd wurde yn 'e groep troch kommando nei jo pivot .
Tink derom, myn tabel neamt no mar 3 learlingen. Ik sil de funksje my fertelle hoefolle rapporten elke studint makke:
=QUERY(Papers!A1:G11,"select count(G) pivot A")
Google Sheets QUERY – Order By
Dizze is frij maklik :) It is wend oansortearje de útkomst troch de wearden yn bepaalde kolommen.
Tip. Alle foargeande klausules binne opsjoneel by it brûken fan oarder op . Ik brûk selektearje om minder kolommen werom te jaan foar demonstraasjedoelen.
Litte wy weromgean nei myn oarspronklike tabel en rapporten sortearje op spraakdatum.
Dizze folgjende Google Sheets QUERY-formule sil my de kolommen A, B en C krije, mar sil se tagelyk sortearje op datum yn kolom B:
=QUERY(Papers!A1:G11,"select A,B,C order by B")
Limit
Wat as ik jo sei, jo hoege net elke rige yn te bringen it resultaat? Wat as ik jo fertelde dat Google Sheets QUERY mar in bepaald oantal fan 'e earste oerienkomsten kin lûke dy't it fynt?
No, de limyt -klausule is ûntworpen om jo dêrmei te helpen. It beheint it oantal rigen om werom te kommen troch it opjûne oantal.
Tip. Fiel jo frij om limyt te brûken sûnder oare foarige klausules.
Dizze formule sil de earste 5 rigen sjen litte wêr't de kolom mei sifers in teken befettet (is net leech):
=QUERY(Papers!A1:G11,"select A,B,C,G where G is not null limit 5")
Offset
Dizze klausule is in soarte fan tsjinoerstelde fan de foarige. Wylst limyt jo it oantal rigen jout dat jo oantsjutte, slacht offset se oer, en helje de rest op.
Tip. Offset hat ek gjin oare klausules nedich.
=QUERY(Papers!A1:G11,"select A,B,C,G where G is not null offset 5")
As jo besykje sawol limyt as offset te brûken, sil it folgjende barre:
- Offset sil rigen oan it begjin oerslaan.
- Limit jout in oantal fan defolgjende rigen.
=QUERY(Papers!A1:G11,"select A,B,C,G where G is not null limit 3 offset 3")
Fan 11 rigen gegevens (de earste is in koptekst en QUERY-funksje yn Google Sheets docht in moaie baan om dat te begripen), slacht offset de earste oer 3 rje. Limyt jout 3 folgjende rigen werom (begjinnend mei de 4e):
Google Sheets QUERY - Label
Google Sheets QUERY label kommando lit jo koptekstnammen fan de kolommen feroarje.
Tip. Oare klauselen binne ek opsjoneel foar label .
Set it label earst, folge troch de kolom-ID en in nije namme. As jo in pear kolommen omneame, skiede elk nij pear kolomlabel troch in komma:
=QUERY(Papers!A1:G11,"select A,B,C label A 'Name', B 'Date'")
Format
De format -klausule makket it mooglik om it formaat fan alle wearden yn in kolom te feroarjen. Dêrfoar hawwe jo in patroan nedich dat efter it winske formaat stiet.
Tip. De opmaakklausule kin ek solo spielje yn 'e Google Sheets QUERY.
=QUERY(Papers!A1:G11,"select A,B,C limit 3 format B 'mm-dd, yyyy, ddd'")
Tip. Ik neamde wat datumformaten foar Google Sheets QUERY yn dizze blogpost. Oare formaten kinne wurde nommen direkt út spreadsheets: Format & GT; Getal & GT; Mear Formats & GT; Oanpaste nûmeropmaak .
Opsjes
Dizze wurdt brûkt om wat ekstra ynstellings yn te stellen foar de útkomstgegevens.
Bygelyks, sa'n kommando as gjin_wearden sil allinich opmakke sellen weromjaan.
De fluchste manier om QUERY-formules te bouwen - Meardere Vlookup-oerienkomsten
Hoe krêftich de QUERY-funksje yn Google Blêden ek is,it kin in learkurve nedich wêze om te krijen. It is ien ding om elke klausule apart op in lytse tabel te yllustrearjen, en folslein in oar om te besykjen en alles goed op te bouwen mei in pear klausules en in folle gruttere tabel.
Dêrom hawwe wy besletten om Google Sheets QUERY oan te kleien yn in brûkerfreonlike ynterface en meitsje it de add-on.
Wêrom Meardere VLOOKUP-wedstriden better is dan formules?
No, mei de add-on is d'r absolút net nedich :
- útfine wat oer dy klausules . It is echt maklik om in protte komplekse betingsten te meitsjen yn 'e add-on: safolle as jo nedich binne nettsjinsteande har bestelling om safolle wedstriden te heljen as jo nedich binne.
Opmerking. Op it stuit binne de folgjende klausules yn it ark opnommen: selektearje, wêr, limyt, en offset . As jo taak ek oare klausules fereasket, asjebleaft kommentaar hjirûnder - miskien helpe jo ús te ferbetterjen ;)
- witte hoe't jo operators ynfiere : kies gewoan de ien út in drop-down list.
- puzel oer de juste manier om datum en tiid yn te fieren . De add-on lit jo se ynfiere lykas jo wend binne op basis fan jo spreadsheet-lokaal.
Tip. D'r is altyd in hint beskikber yn it ark mei foarbylden fan ferskate gegevenstypen.
As bonus kinne jo:
- foarbyld sawol de resultaat en de formule
- meitsje snelle oanpassingen oan jo