Cuprins
Dacă urmăriți acest blog de ceva vreme, poate vă amintiți de funcția QUERY pentru Google Sheets. Am menționat-o ca o posibilă soluție pentru câteva cazuri. Dar acestea sunt departe de a fi suficiente pentru a-i descoperi întregul potențial. Astăzi, este timpul să cunoaștem cum se cuvine acest super-erou al foilor de calcul. Și ghiciți ce - un instrument la fel de demn de luat în seamă va fi și el prezent :)
Știați că funcția QUERY din Google Sheets este considerată cea mai puternică funcție din foile de calcul? Sintaxa sa particulară favorizează zeci de operații diferite. Să încercăm să îi despărțim părțile pentru a le învăța odată pentru totdeauna, nu-i așa?
Sintaxa funcției QUERY din Google Sheets
La prima vedere, Google Sheets QUERY este doar o altă funcție cu 1 argument opțional și 2 argumente obligatorii:
=QUERY(data, query, [headers])- date este intervalul de procesare. Necesar. Totul este foarte clar aici.
Notă. Doar un mic memento aici stabilit de Google: fiecare coloană trebuie să conțină un singur tip de date: textuale, sau numerice, sau booleene. Dacă există tipuri diferite, QUERY va lucra cu cel care apare cel mai des. Celelalte tipuri vor fi considerate celule goale. Ciudat, dar țineți cont de asta.
- interogare este modalitatea de procesare a date . Necesar. Aici începe distracția. Funcția QUERY din Google Sheets utilizează un limbaj special pentru acest argument: Limbajul de interogare Google Visualization API Este scris într-un mod similar cu SQL. În principiu, este un set de clauze speciale (comenzi) folosite pentru a spune funcției ce trebuie să facă: select, group by, limit, etc.
Notă. Întregul argument trebuie să fie cuprins între ghilimele duble. Valorile, la rândul lor, trebuie să fie cuprinse în ghilimele.
- anteturi este opțional pentru cazurile în care trebuie să indicați numărul de rânduri de antet din datele dvs. Omiteți argumentul (așa cum fac eu mai jos), iar Google Sheets QUERY îl va presupune pe baza conținutului tabelului dvs.
Acum să analizăm mai în profunzime clauzele și ce fac ele.
Clauzele utilizate în formulele QUERY din Google Sheets
Limbajul de interogare este format din 10 clauze. Acestea pot speria la prima vedere, mai ales dacă nu sunteți familiarizați cu SQL. Dar vă promit că, odată ce le veți cunoaște, veți avea la dispoziție o armă puternică de calcul tabelar.
Voi acoperi fiecare clauză și voi oferi exemple de formule folosind această listă de studenți imaginari și subiectele lor de hârtie:
Da, sunt unul dintre acei ciudați care cred că Pluto ar trebui să fie o planetă :)
Sfat. În cadrul unei funcții QUERY din Google Sheets pot fi utilizate mai multe clauze. Dacă le aninați pe toate, asigurați-vă că respectați ordinea de apariție a acestora în acest articol.
Selectare (toate coloanele sau anumite coloane)
Prima clauză - selectați - este utilizat pentru a indica ce coloane trebuie să returnați cu Google Sheets QUERY dintr-o altă foaie sau tabel.
Exemplul 1. Selectați toate coloanele
Pentru a prelua fiecare coloană în parte, utilizați selectați cu un asterisc - selectează *
=QUERY(Papers!A1:G11, "select *")
Sfat: Dacă omiteți selectați Google Sheets QUERY va returna în mod implicit toate coloanele:
=QUERY(Papers!A1:G11)
Exemplul 2. Selectarea unor coloane specifice
Pentru a extrage doar anumite coloane, listați-le după selectați clauză:
=QUERY(Papers!A1:G11, "select A,B,C")
Sfat: Coloanele de interes vor fi copiate în aceeași ordine în care le-ați menționat în formulă:
=QUERY(Papers!A1:G11, "select C,B,A")
Google Sheets QUERY - Clauza Where
Google Sheets QUERY unde este utilizat pentru a stabili condițiile pentru datele pe care doriți să le obțineți. Cu alte cuvinte, acționează ca un filtru.
Dacă utilizați această clauză, funcția QUERY pentru Google Sheets va căuta în coloane valorile care îndeplinesc condițiile dvs. și vă va aduce înapoi toate corespondențele.
Sfat. Unde poate funcționa fără selectați clauză.
Ca de obicei, pentru a specifica condițiile, există seturi de condiții speciale operatori pentru tine:
- operatori de comparație simplă ( pentru valori numerice ): =, ,>,>=, <, <=
- operatori de comparație complexă ( pentru corzi ): conține, începe cu, se termină cu, se potrivește, != (nu se potrivește / nu este egal cu), ca .
- operatori logici pentru combină mai multe condiții : și, sau, nu .
- operatori pentru gol / nu este gol : este nul, nu este nul .
Sfat. Dacă sunteți supărat sau îngrijorat de faptul că trebuie să vă confruntați din nou cu un număr atât de mare de operatori, vă înțelegem. Potrivirile noastre de Vlookup multiple vor găsi toate potrivirile și vor construi formule QUERY în Google Sheets pentru dvs. dacă este necesar.
Să vedem cum se comportă acești operatori în formule.
Exemplul 1. Unde cu numere
Voi adăuga unde la interogarea mea din Google Sheets de mai sus pentru a obține informații despre acele planete care au mai mult de 10 sateliți:
=QUERY(Papers!A1:G11, "select A,B,C,F where F>=10")
Sfat. Am menționat, de asemenea, coloana F pentru a o prelua doar pentru a mă asigura că este îndeplinit criteriul. Dar este complet opțional. Nu trebuie să includeți coloanele cu condiții în rezultat:
=QUERY(Papers!A1:G11, "select A,B,C where F>=10")
Exemplul 2. Unde cu șiruri de texte
- Vreau să văd toate rândurile în care nota este fie F sau F+ . voi folosi conține operator pentru aceasta:
=QUERY(Papers!A1:G11, "select A,B,C,G where G contains 'F'")
Notă. Nu uitați să înconjurați textul cu ghilimele.
- Pentru a obține toate rândurile cu F doar, trebuie doar să înlocuiți conține cu un semn egal (=):
=QUERY(Papers!A1:G11, "select A,B,C,G where G="F"")
- Pentru a verifica lucrările care nu au fost încă predate (unde lipsește nota), verificați coloana G pentru spații libere:
=QUERY(Papers!A1:G11, "select A,B,C,G,G where G is null'")
Exemplul 3. Unde cu date
Ghiciți ce: Google Sheets QUERY a reușit să îmblânzească și datele!
Deoarece foile de calcul stochează datele sub formă de numere de serie, de obicei, trebuie să recurgeți la ajutorul unor funcții speciale precum DATE sau DATEVALUE, YEAR, MONTH, TIME etc.
Dar QUERY a găsit o cale de a ocoli datele. Pentru a le introduce corect, este suficient să tastați cuvântul data și apoi adăugați data însăși formatată ca aaaa-mm-dd: data "2020-01-01
Iată formula mea pentru a obține toate rândurile cu o dată de vorbire anterioară datei de 1 ianuarie 2020:
=QUERY(Papers!A1:G11, "select A,B,C where B
Exemplul 4. Combinați mai multe condiții
Pentru a utiliza o anumită perioadă de timp ca și criteriu, va trebui să combinați două condiții.
Să încercăm să recuperăm acele lucrări care au fost livrate în toamna anului 2019. Primul criteriu ar trebui să fie o dată la 1 septembrie 2019 sau după această dată , al doilea - până la 30 noiembrie 2019 sau înainte de această dată :
=QUERY(Papers!A1:G11, "select A,B,C where B>=data '2019-09-01' și B<=data '2019-11-30'")
Sau, pot selecta lucrări pe baza acestor parametri:
- înainte de 31 decembrie 2019 ( B
) - au ca notă fie A, fie A+ ( G conține "A )
- sau B/B+ ( G conține "B )
=QUERY(Papers!A1:G11, "select A,B,C,G where B
Sfat. Dacă deja capul tău este pe cale să explodeze, nu renunța încă. Există un instrument care este perfect capabil să construiască toate aceste formule pentru tine, indiferent de numărul de criterii. Sari direct la sfârșitul articolului pentru a-l cunoaște.
Google Sheets QUERY - Gruparea prin
Google Sheets QUERY grup de Cu toate acestea, ar trebui să utilizați anumite funcții de agregare pentru a le rezuma.
Notă. Grupați după trebuie să urmeze întotdeauna selectați clauză.
Din păcate, nu există nimic de grupat în tabelul meu, deoarece nu există valori recurente. Așadar, permiteți-mi să îl ajustez puțin.
Să presupunem că toate lucrările vor fi pregătite doar de 3 studenți. Pot afla cea mai mare notă pe care a obținut-o fiecare student. Dar, întrucât sunt litere, funcția MIN este cea pe care trebuie să o aplic la coloana G:
=QUERY(Papers!A1:G11, "select A,min(G) group by A")
Notă. Dacă nu utilizați o funcție de agregare cu nici o coloană din coloana selectați clauză (coloana A în exemplul meu), trebuie să le duplicați pe toate în grup de clauză.
Google Sheets QUERY - Pivot
Google Sheets QUERY pivot Funcționează invers, dacă îmi permiteți să spun așa: transpune datele dintr-o coloană într-un rând cu noi coloane, grupând alte valori în mod corespunzător.
Pentru cei care se ocupă de date, aceasta poate fi o adevărată descoperire. Veți putea arunca o privire rapidă asupra tuturor anilor distinși din acea coloană sursă.
Notă: Când vine vorba de pivot , fiecare coloană utilizată în selectați ar trebui să fie acoperită cu o funcție agregată. În caz contrar, aceasta ar trebui să fie menționată în clauza grup de în urma comenzii dvs. pivot .
Nu uitați, tabelul meu menționează acum doar 3 studenți. Voi face ca funcția să îmi spună câte rapoarte a făcut fiecare student:
=QUERY(Papers!A1:G11, "select count(G) pivot A")
Google Sheets QUERY - Comandă după
Acesta este destul de simplu :) Este folosit pentru a sorta rezultatul în funcție de valorile din anumite coloane.
Sfat: Toate clauzele anterioare sunt opționale atunci când se utilizează comanda prin . eu folosesc selectați pentru a returna mai puține coloane în scop demonstrativ.
Să ne întoarcem la tabelul meu inițial și să sortăm rapoartele în funcție de data discursului.
Următoarea formulă de interogare din Google Sheets va obține coloanele A, B și C, dar în același timp le va sorta după data din coloana B:
=QUERY(Papers!A1:G11, "select A,B,C order by B")
Limitați
Dacă ți-aș spune că nu trebuie să aduci fiecare rând în rezultat? Dacă ți-aș spune că Google Sheets QUERY poate extrage doar o anumită cantitate din primele potriviri pe care le găsește?
Ei bine, în limită Aceasta limitează numărul de rânduri de returnat cu numărul dat.
Sfat: nu ezitați să folosiți limită fără alte clauze anterioare.
Această formulă va afișa primele 5 rânduri în care coloana cu note conține o notă (nu este goală):
=QUERY(Papers!A1:G11, "select A,B,C,G,G where G is not null limit 5")
Offset
Această clauză este oarecum opusă celei anterioare. În timp ce limită obține numărul de rânduri pe care l-ați specificat, offset le sare, recuperând restul.
Sfat. Offset de asemenea, nu necesită nici o altă clauză.
=QUERY(Papers!A1:G11, "select A,B,C,G,G where G is not null offset 5")
Dacă încerci să folosești ambele limită și offset , se vor întâmpla următoarele:
- Offset va sări peste rândurile de la început.
- Limitați va returna un număr din următoarele rânduri.
=QUERY(Papers!A1:G11, "select A,B,C,G,G where G is not null limit 3 offset 3")
Din 11 rânduri de date (primul este un antet, iar funcția QUERY din Google Sheets face o treabă bună în acest sens), offset sare peste primele 3 rânduri. Limit returnează următoarele 3 rânduri (începând cu al patrulea):
Google Sheets QUERY - Etichetă
Google Sheets QUERY eticheta comanda vă permite să modificați numele antetului coloanelor.
Sfat. Alte clauze sunt opționale pentru eticheta de asemenea.
Puneți eticheta mai întâi, urmată de ID-ul coloanei și de un nou nume. Dacă redenumiți mai multe coloane, separați fiecare pereche nouă de coloane-etichetă printr-o virgulă:
=QUERY(Papers!A1:G11, "select A,B,C label A 'Nume', B 'Data'")
Format
The format face posibilă modificarea formatului tuturor valorilor dintr-o coloană. Pentru aceasta, veți avea nevoie de un model care să stea în spatele formatului dorit.
Sfat. Clauza de format poate juca și ea solo în Google Sheets QUERY.
=QUERY(Papers!A1:G11, "select A,B,C limit 3 format B 'mm-dd, yyyy, ddd'")
Sfat. Am menționat câteva formate de date pentru Google Sheets QUERY în această postare pe blog. Alte formate pot fi preluate direct din foile de calcul: Format> Număr> Mai multe formate> Format de număr personalizat .
Opțiuni
Aceasta este utilizată pentru a seta unele setări suplimentare pentru datele de rezultat.
De exemplu, o astfel de comandă precum no_values va returna numai celule formatate.
Cel mai rapid mod de a construi formule QUERY - Potriviri multiple Vlookup
Oricât de puternică ar fi funcția QUERY din Google Sheets, este posibil să fie nevoie de o curbă de învățare pentru a pune mâna pe ea. Este un lucru să ilustrezi fiecare clauză separat pe un tabel mic și cu totul altceva să încerci să construiești totul corect cu câteva clauze și un tabel mult mai mare.
De aceea, am decis să îmbrăcăm Google Sheets QUERY într-o interfață prietenoasă și să o transformăm în add-on.
De ce este mai bine să folosiți mai multe potriviri VLOOKUP decât formulele?
Ei bine, cu add-on-ul există nu este absolut necesar să :
- să înțeleg nimic despre acele clauze Este foarte ușor să creați o mulțime de condiții complexe în acest supliment: atâtea câte aveți nevoie, în ciuda ordinii lor, pentru a obține atâtea meciuri câte aveți nevoie.
Notă. În prezent, următoarele clauze au fost încorporate în instrument: select, where, limit, și offset Dacă sarcina dvs. necesită și alte clauze, vă rugăm să comentați mai jos - poate ne veți ajuta să ne îmbunătățim ;)
- știu cum să introduceți operatorii : alegeți-l doar pe cel din lista derulantă.
- să te gândești corectă modul de introducere a datei și orei Suplimentul vă permite să le introduceți așa cum o făceați înainte, în funcție de locația foii de calcul.
Sfat. Întotdeauna există un indiciu disponibil în instrument cu exemple de diferite tipuri de date.
În calitate de bonus , veți putea să:
- previzualizare atât la rezultatul și formula
- face ajustări rapide la criteriile dumneavoastră
- selectați un loc pentru rezultat
- introduceți rezultatul ca fiind atât Formula QUERY sau ca valori
Nu glumesc, vedeți cu ochii voștri. Deși acest GIF a fost accelerat, mi-a luat mai puțin de un minut să ajustez toate criteriile și să obțin rezultatul:
Dacă sunteți suficient de curioși, iată un videoclip detaliat care arată cum funcționează acest add-on:
Sper că veți da o șansă acestui add-on și că îl veți obține de pe Google Workspace Marketplace. Nu fiți timid și împărtășiți-ne comentariile dumneavoastră, mai ales dacă există ceva ce nu vă place la el.
De asemenea, nu ezitați să consultați pagina de tutoriale sau pagina principală.