La funzione QUERY di Fogli Google, spiegata
=QUERY(data; query; [headers]) filtra, ordina e riassume un intervallo con un breve testo scritto nel linguaggio di query dell'API di visualizzazione di Google. Assomiglia a una query SQL, quindi è la cosa più vicina a una tabella pivot che Fogli offra in una sola formula.
QUERY esiste solo in Fogli Google. In Excel, usa FILTRO (Inglese: FILTER), DATI.ORDINA (Inglese: SORT), SOMMA.PIÙ.SE (Inglese: SUMIFS) o una tabella pivot per gli stessi compiti.
I tre argomenti
data è l'intervallo da interrogare. Ogni colonna dovrebbe contenere un solo tipo di valore: numeri, testo o date. Una colonna con tipi misti viene trattata in base al tipo prevalente.
query è il testo della query tra virgolette, oppure un riferimento a una cella che lo contiene.
headers indica quante righe di intestazione ha l'intervallo. Se lo ometti, Fogli lo indovina, ed è per questo che a volte una riga di intestazione viene trattata come dato. Impostalo a 1 quando hai una sola riga di intestazione.
Select e where
Le colonne sono indicate con le loro lettere nell'intervallo (A, B, C…). =QUERY(A1:D20;"select A, C where C > 100";1) restituisce le colonne A e C per le righe in cui C è maggiore di 100. I valori di testo vanno tra apici singoli: =QUERY(A1:D20;"select A, C where B = 'East'";1).
Group by e somme
Le funzioni di aggregazione sono sum, avg, count, min e max. =QUERY(A1:D20;"select B, sum(C) group by B";1) somma la colonna C per ogni valore distinto di B: un SUMIF per ogni area in un'unica formula. Ogni colonna selezionata che non è aggregata deve trovarsi in group by.
Order by, limit e label
=QUERY(A1:D20;"select B, sum(C) group by B order by sum(C) desc limit 3 label sum(C) 'Totale'";1) ordina i totali dal più alto al più basso, mantiene i primi tre e rinomina la colonna della somma in Totale.
Pivot
Aggiungi pivot per trasformare i valori distinti di una colonna in colonne: =QUERY(A1:D20;"select B, sum(C) group by B pivot D";1) mostra una colonna per ciascun valore di D, come una tabella pivot.
Errori comuni
Tipi di dati misti in una colonna. Una colonna con numeri e testo restituisce celle vuote per il tipo minoritario.
Correzione: Pulisci la colonna in modo che ogni cella abbia lo stesso tipo prima di interrogarla.
Dimenticare gli apici intorno ai valori di testo.
=QUERY(A1:D20;"select A where B = East")dà un errore.Correzione: Metti il testo tra apici singoli nella query: B = 'East'.
Omettere l'argomento headers. Fogli lo indovina e potrebbe trattare la riga di intestazione come dato.
Correzione: Indica sempre il numero di righe di intestazione, di solito 1.
Domande frequenti
Qual è l'equivalente di QUERY in Excel?
Non ce n'è uno solo. FILTRO (Inglese: FILTER) con DATI.ORDINA (Inglese: SORT) copre select e where, SOMMA.PIÙ.SE (Inglese: SUMIFS) copre le somme con group by, e una tabella pivot copre pivot.
Devo conoscere SQL?
No, ma aiuta: select, where, group by e order by funzionano in modo molto simile ai loro equivalenti SQL. La sezione SQL di questo sito li insegna.
Funzioni correlate
- FILTERFILTER restituisce le righe di un intervallo che rispettano una condizione, e le riversa nelle celle sottostanti.
- SORTSORT restituisce una copia ordinata di un intervallo che si aggiorna quando cambiano i dati, in ordine crescente o decrescente, per qualsiasi colonna.
- SUMIFSSUMIFS somma i valori che soddisfano più condizioni contemporaneamente, come gli ordini pagati di una regione.
- UNIQUEUNIQUE restituisce ogni valore di un elenco una sola volta, eliminando i duplicati con una formula che si aggiorna da sola.