Sommario
Se seguite questo blog da un po' di tempo, forse ricorderete la funzione QUERY di Google Sheets. L'ho menzionata come possibile soluzione per un paio di casi, ma non sono sufficienti per scoprire il suo pieno potenziale. Oggi è giunto il momento di conoscere questo supereroe dei fogli di calcolo come si deve. E indovinate un po': ci sarà anche uno strumento altrettanto degno di nota :)
Sapevate che la funzione QUERY di Google Sheets è considerata la più potente dei fogli di calcolo? La sua particolare sintassi favorisce decine di operazioni diverse. Proviamo a scomporre le sue parti per impararle una volta per tutte, che ne dite?
Sintassi della funzione QUERY di Google Sheets
A prima vista, la QUERY di Google Sheets è solo un'altra funzione con 1 argomento opzionale e 2 argomenti obbligatori:
=QUERY(dati, query, [intestazioni])- dati è l'intervallo da elaborare. Richiesto. Qui è tutto chiarissimo.
Nota. Solo un piccolo promemoria stabilito da Google: ogni colonna deve contenere un tipo di dati: testuali, numerici o booleani. Se ci sono tipi diversi, QUERY lavorerà con quello che ricorre di più. Gli altri tipi saranno considerati come celle vuote. Strano, ma tenetelo a mente.
- interrogazione è il modo per elaborare il file dati . Richiesto. Qui inizia il divertimento: la funzione QUERY di Google Sheets utilizza un linguaggio speciale per questo argomento: Linguaggio di interrogazione dell'API di visualizzazione di Google In pratica, si tratta di un insieme di clausole speciali (comandi) utilizzate per indicare alla funzione cosa fare: selezionare, raggruppare per, limitare, ecc.
Nota: l'intero argomento deve essere racchiuso tra virgolette doppie. I valori, a loro volta, devono essere racchiusi tra virgolette.
- intestazioni è opzionale per indicare il numero di righe di intestazione nei dati. Se si omette l'argomento (come faccio io), Google Sheets QUERY lo assumerà in base al contenuto della tabella.
Approfondiamo ora le clausole e le loro funzioni.
Clausole utilizzate nelle formule QUERY di Google Sheets
Il linguaggio di query è composto da 10 clausole che a prima vista possono spaventare, soprattutto se non si ha dimestichezza con l'SQL, ma vi assicuro che una volta imparate a conoscerle, avrete a disposizione una potente arma per i fogli di calcolo.
Tratterò ogni clausola e fornirò esempi di formule utilizzando questo elenco di studenti immaginari e i loro soggetti cartacei:
Sì, sono uno di quei tipi strani che pensano che Plutone dovrebbe essere un pianeta :)
Suggerimento: è possibile utilizzare diverse clausole all'interno di una funzione QUERY di Google Sheets. Se le annidate tutte, assicuratevi di seguire l'ordine di apparizione in questo articolo.
Selezionare (tutte o specifiche colonne)
La prima clausola - selezionare - è utilizzato per indicare le colonne da restituire con la QUERY di Google Sheets da un altro foglio o tabella.
Esempio 1. Selezionare tutte le colonne
Per recuperare ogni singola colonna, utilizzare selezionare con un asterisco - selezionare *
=QUERY(Papers!A1:G11, "select *")
Suggerimento: se si omette l'opzione selezionare Google Sheets QUERY restituirà tutte le colonne per impostazione predefinita:
=QUERY(Documenti!A1:G11)
Esempio 2. Selezionare colonne specifiche
Per estrarre solo alcune colonne, elencarle dopo l'opzione selezionare clausola:
=QUERY(Papers!A1:G11, "select A,B,C")
Suggerimento: le colonne di interesse verranno copiate nello stesso ordine in cui sono state indicate nella formula:
=QUERY(Papers!A1:G11, "select C,B,A")
QUERY di Google Sheets - Clausola Where
Query di Google Sheets dove viene utilizzato per impostare le condizioni relative ai dati che si desidera ottenere. In altre parole, agisce come un filtro.
Se si utilizza questa clausola, la funzione QUERY per Google Sheets cercherà nelle colonne i valori che soddisfano le condizioni e recupererà tutte le corrispondenze.
Suggerimento. Dove può funzionare senza il selezionare clausola.
Come di consueto, per specificare le condizioni, ci sono insiemi di operatori per voi:
- semplici operatori di confronto ( per i valori numerici ): =, ,>,>=, <, <=
- operatori di confronto complessi ( per le stringhe ): contiene, inizia con, finisce con, corrisponde, != (non corrisponde / non è uguale a), come .
- operatori logici per combinare diverse condizioni : e, o, non .
- operatori per vuoto / non vuoto : è nullo, non è nullo .
Se siete preoccupati di dover gestire di nuovo un numero così elevato di operatori, vi capiamo: il nostro Vlookup Matches multiplo troverà tutte le corrispondenze e, se necessario, costruirà formule QUERY in Google Sheets per voi.
Vediamo come si comportano questi operatori nelle formule.
Esempio 1. Dove con i numeri
Aggiungerò dove alla mia QUERY di Google Sheets di cui sopra per ottenere le informazioni sui pianeti che hanno più di 10 lune:
=QUERY(Papers!A1:G11, "select A,B,C,F where F>=10")
Suggerimento: ho menzionato anche la colonna F da recuperare per assicurarsi che il criterio sia soddisfatto, ma è del tutto facoltativa. Non è necessario includere le colonne con le condizioni nel risultato:
=QUERY(Papers!A1:G11, "seleziona A,B,C dove F>=10")
Esempio 2. Dove con stringhe di testo
- Voglio vedere tutte le righe in cui il voto è o F o F+ . userò il contiene operatore per questo:
=QUERY(Papers!A1:G11, "selezionare A,B,C,G dove G contiene 'F'")
Nota: non dimenticate di circondare il testo con le virgolette.
- Per ottenere tutte le righe con F solo, basta sostituire contiene con un segno di uguale (=):
=QUERY(Papers!A1:G11, "selezionare A,B,C,G dove G="F"")
- Per controllare gli elaborati ancora da consegnare (dove manca il voto), controllare la colonna G per gli spazi vuoti:
=QUERY(Papers!A1:G11, "select A,B,C,G where G is null'")
Esempio 3. Dove con date
Indovinate un po': le QUERY di Google Sheets sono riuscite a domare anche le date!
Poiché i fogli di calcolo memorizzano le date come numeri di serie, di solito è necessario ricorrere all'aiuto di funzioni speciali come DATE o DATEVALUE, YEAR, MONTH, TIME, ecc.
Ma QUERY ha trovato il modo di aggirare le date: per inserirle correttamente, è sufficiente digitare la parola data e poi aggiungere la data stessa formattata come aaaa-mm-gg: data '2020-01-01'
Ecco la mia formula per ottenere tutte le righe con data di pubblicazione precedente al 1° gennaio 2020:
=QUERY(Papers!A1:G11, "seleziona A,B,C dove B
Esempio 4. Combinare diverse condizioni
Per utilizzare un certo periodo di tempo come criterio, è necessario combinare due condizioni.
Cerchiamo di recuperare i documenti che sono stati consegnati nell'autunno 2019. Il primo criterio dovrebbe essere una data a partire dal 1° settembre 2019 , il secondo - entro il 30 novembre 2019 :
=QUERY(Papers!A1:G11, "selezionare A,B,C dove B>=data '2019-09-01' e B<=data '2019-11-30'")
Oppure, posso selezionare i documenti in base a questi parametri:
- prima del 31 dicembre 2019 ( B
) - hanno come voto A o A+ ( G contiene 'A' )
- o B/B+ ( G contiene 'B' )
=QUERY(Papers!A1:G11, "seleziona A,B,C,G dove B
Se la vostra testa sta già per esplodere, non arrendetevi ancora: esiste uno strumento perfettamente in grado di costruire per voi tutte queste formule, indipendentemente dal numero di criteri. Saltate direttamente alla fine dell'articolo per conoscerlo.
QUERY di Google Sheets - Raggruppa per
Query di Google Sheets gruppo da Il comando si usa per concatenare le righe, ma è necessario usare alcune funzioni di aggregazione per riassumerle.
Nota. Gruppo per deve sempre seguire il selezionare clausola.
Purtroppo nella mia tabella non c'è nulla da raggruppare, perché non ci sono valori ricorrenti. Quindi, vorrei modificare un po' la tabella.
Supponiamo che tutti gli elaborati siano stati preparati solo da 3 studenti. Posso trovare il voto più alto ottenuto da ogni studente, ma dato che si tratta di lettere, è la funzione MIN che devo applicare alla colonna G:
=QUERY(Papers!A1:G11, "select A,min(G) group by A")
Nota: se non si utilizza una funzione di aggregazione con una colonna del file selezionare (colonna A nel mio esempio), è necessario duplicarli tutti nel file gruppo da clausola.
QUERY di Google Sheets - Pivot
Query di Google Sheets perno La clausola funziona al contrario: traspone i dati da una colonna a una riga con nuove colonne, raggruppando gli altri valori di conseguenza.
Per chi ha a che fare con le date, questa può essere una vera e propria scoperta: potrete dare un'occhiata rapida a tutti gli anni distinti da quella colonna di origine.
Nota: quando si tratta di perno , ogni colonna utilizzata nel selezionare deve essere coperta da una funzione aggregata, altrimenti deve essere menzionata nella clausola gruppo da seguendo il comando perno .
Ricordate che la mia tabella ora menziona solo 3 studenti. Farò in modo che la funzione mi dica quante relazioni ha fatto ogni studente:
=QUERY(Papers!A1:G11, "select count(G) pivot A")
QUERY di Google Sheets - Ordina per
Questo è abbastanza facile :) Viene utilizzato per ordinare i risultati in base ai valori di alcune colonne.
Suggerimento: tutte le clausole precedenti sono facoltative quando si utilizza il metodo ordine da . uso selezionare per restituire un numero inferiore di colonne a scopo dimostrativo.
Torniamo alla tabella originale e ordiniamo i rapporti per data di intervento.
La prossima formula QUERY di Google Sheets mi farà ottenere le colonne A, B e C, ma allo stesso tempo le ordinerà per data nella colonna B:
=QUERY(Papers!A1:G11, "select A,B,C order by B")
Limite
E se vi dicessi che non è necessario inserire ogni singola riga nel risultato? E se vi dicessi che la QUERY di Google Sheets può estrarre solo una certa quantità delle prime corrispondenze che trova?
Beh, il limite La clausola è pensata per aiutare in questo senso e limita il numero di righe da restituire in base al numero indicato.
Suggerimento: sentitevi liberi di usare limite senza altre clausole precedenti.
Questa formula mostrerà le prime 5 righe in cui la colonna dei voti contiene un voto (non è vuota):
=QUERY(Papers!A1:G11, "select A,B,C,G where G is not null limit 5")
Offset
Questa clausola è in un certo senso opposta alla precedente. Mentre limite ottiene il numero di righe specificato, offset li salta, recuperando il resto.
Suggerimento. Offset non richiede altre clausole.
=QUERY(Papers!A1:G11, "select A,B,C,G where G is not null offset 5")
Se si cerca di utilizzare entrambi limite e offset , si verificherà quanto segue:
- Offset salterà le righe all'inizio.
- Limite restituirà un numero di righe seguenti.
=QUERY(Papers!A1:G11, "select A,B,C,G where G is not null limit 3 offset 3")
Su 11 righe di dati (la prima è un'intestazione e la funzione QUERY di Google Sheets fa un buon lavoro per capirlo), offset salta le prime 3 righe. Limit restituisce le 3 righe successive (a partire dalla quarta):
Query di Google Sheets - Etichetta
Query di Google Sheets etichetta consente di modificare i nomi delle intestazioni delle colonne.
Suggerimento. Altre clausole sono facoltative per etichetta anche.
Mettere il etichetta seguito dall'ID della colonna e dal nuovo nome. Se si rinominano più colonne, separare ogni nuova coppia colonna-etichetta con una virgola:
=QUERY(Papers!A1:G11, "selezionare A,B,C etichetta A 'Nome', B 'Data'")
Formato
Il formato consente di modificare il formato di tutti i valori di una colonna. A tale scopo, è necessario un modello che si trovi dietro il formato desiderato.
Suggerimento: la clausola di formattazione può essere utilizzata anche nella QUERY di Google Sheets.
=QUERY(Papers!A1:G11, "select A,B,C limit 3 format B 'mm-dd, yyyy, ddd'")
Suggerimento: in questo post ho citato alcuni formati di data per le QUERY di Google Sheets. Altri formati possono essere presi direttamente dai fogli di calcolo: Formato> Numero> Altri formati> Formato numero personalizzato .
Opzioni
Questa opzione viene utilizzata per impostare alcune impostazioni aggiuntive per i dati di esito.
Ad esempio, un comando come no_valori restituirà solo celle formattate.
Il modo più rapido per costruire formule QUERY - Partite multiple di Vlookup
Per quanto potente, la funzione QUERY di Google Sheets può richiedere una curva di apprendimento: una cosa è illustrare ogni clausola separatamente su una piccola tabella, un'altra è cercare di costruire tutto correttamente con poche clausole e una tabella molto più grande.
Ecco perché abbiamo deciso di vestire Google Sheets QUERY con un'interfaccia facile da usare e di farne un componente aggiuntivo.
Perché le corrispondenze multiple VLOOKUP sono migliori delle formule?
Beh, con il componente aggiuntivo c'è non c'è assolutamente bisogno di :
- capire nulla su questi clausole È davvero facile creare molte condizioni complesse nel componente aggiuntivo: tutte quelle di cui si ha bisogno, nonostante il loro ordine, per ottenere tutte le corrispondenze di cui si ha bisogno.
Nota: al momento sono state incorporate nello strumento le seguenti clausole: selezionare, dove, limite, e offset Se il vostro compito richiede anche altre clausole, commentate qui sotto - forse ci aiuterete a migliorare ;)
- sapere come inserire gli operatori : basta scegliere quello da un elenco a discesa.
- puzzle su il corretto modo per inserire data e ora Il componente aggiuntivo consente di inserirli come un tempo, in base alla localizzazione del foglio di calcolo.
Suggerimento: nello strumento è sempre disponibile un suggerimento con esempi di diversi tipi di dati.
Come bonus , sarete in grado di:
- anteprima sia il e la formula
- fare regolazioni rapide ai vostri criteri
- selezionare un posto per il risultato
- inserto il risultato come entrambi Formula di interrogazione o come valori
Anche se questa GIF è stata velocizzata, ho impiegato meno di un minuto per mettere a punto tutti i criteri e ottenere il risultato:
Se siete abbastanza curiosi, ecco un video dettagliato che mostra il funzionamento del componente aggiuntivo:
Spero che darete una possibilità a questo componente aggiuntivo e lo otterrete da Google Workspace Marketplace. Non siate timidi e condividete il vostro feedback, soprattutto se c'è qualcosa che non vi piace.
Inoltre, non esitate a consultare la pagina dei tutorial o la pagina iniziale.