Sommario
Se l'unico modo che conoscete per creare un filtro in Google Sheets è lo strumento standard, ho una sorpresa per voi: venite a esplorare con me la funzione FILTRO. Ci sono molte formule già pronte che potete prendere in prestito, oltre a un nuovo potente strumento che completa enormemente il set di strumenti di filtraggio.
Qualche tempo fa abbiamo spiegato come filtrare in Google Fogli utilizzando lo strumento standard. Abbiamo accennato a come filtrare per valore e per condizione. Tuttavia, i fogli di calcolo hanno sempre molto di più di quello che sappiamo. E questa volta esplorerò con voi la funzione FILTRO di Google Fogli.
Non si trova in Excel, quindi vale sicuramente la pena di verificare.
Sintassi della funzione FILTRO di Google Sheets
FILTRO in Google Sheets analizza i dati e restituisce le informazioni richieste che soddisfano i criteri.
A differenza del filtro standard di Google Sheets, la funzione non fa nulla con i dati originali, ma copia le righe trovate e le inserisce nel punto in cui si costruisce la formula.
La sintassi è piuttosto semplice, poiché ogni argomento parla da sé:
=FILTRO(intervallo, condizione1, [condizione2, ...])- gamma è il dato che si vuole filtrare. Richiesto.
- condizione1 è una colonna o una riga insieme ai criteri VERO/FALSO in cui dovrebbe rientrare. Richiesto.
- condizione2,... , ecc. stanno per altre colonne/riga e/o altri criteri. Opzionale.
Nota. condizione deve avere la stessa dimensione del file gamma .
Nota: se si utilizzano più condizioni, devono essere tutte per colonne o righe. La funzione FILTRO di Google Sheets non consente condizioni miste.
Ora, con queste note in mente, vediamo come prendono forma gli argomenti delle diverse formule.
Come utilizzare la funzione FILTRO in Google Sheets
Vi mostrerò tutti gli esempi filtrando una piccola tabella in cui tengo traccia di alcuni ordini:
La tabella contiene 20 righe con vari tipi di dati, perfetti per imparare la funzione.
Come filtrare in Google Fogli in base al testo
Esempio 1. Il testo è esattamente
Per prima cosa, chiederò alla funzione di mostrare solo gli ordini in ritardo. Inserisco l'intervallo da filtrare - A1:E20 - e poi impostare la condizione - colonna E dovrebbe essere uguale a In ritardo :
=FILTER(A1:E20,E1:E20="Late")
Esempio 2. Il testo non è esattamente
Posso chiedere alla funzione di ottenere tutti gli ordini tranne quelli che sono in ritardo. Per questo, avrò bisogno di un operatore di confronto speciale () che significa non uguale a :
=FILTER(A1:E20,E1:E20"Late")
Esempio 3. Il testo contiene
Ora vorrei mostrarvi come costruire la funzione FILTRO di Google Sheets in base alla corrispondenza parziale. O in altre parole: se il testo contiene .
Abbiamo notato che gli ID degli ordini nella colonna A contengono abbreviazioni di paesi alla fine? Creiamo una formula per recuperare solo gli ordini che sono stati spediti dal Canada ( CA ).
Normalmente si utilizzano i caratteri jolly, ma quando si tratta della formula FILTRO, sono le funzioni TROVA e CERCA a operare in questo modo.
Suggerimento: se si preferisce evitare di annidare altre funzioni quando si filtra per semplici occorrenze di parole, si può provare il componente aggiuntivo descritto alla fine.
Nota: se il caso del testo è importante, utilizzare FIND, altrimenti scegliere SEARCH.
La funzione CERCA va bene per il mio esempio, poiché il caso del testo è irrilevante:
=SEARCH(search_for, text_to_search, [starting_at])- ricerca_per è il testo che voglio trovare. È molto importante avvolgerlo con le virgolette doppie: "ca" . Richiesto.
- testo_da_ricercare è l'intervallo da scansionare per trovare il testo necessario. È necessario. A1:A20 per me.
- data_inizio indica la posizione di partenza per la ricerca, ovvero il numero del carattere da cui iniziare la ricerca. È del tutto facoltativo, ma è necessario utilizzarlo. Tutti gli ID degli ordini sono costituiti da lettere e numeri, quindi una coppia di caratteri CA Lo schema identico di tutti gli ID mi consente di cercare CA a partire dall'8° carattere.
Dopo aver raccolto tutte queste parti insieme, ottengo il risultato desiderato:
=FILTRO(A1:E20,CERCA("ca",A1:A20,8))
Come filtrare per data e ora in Google Sheets
Per filtrare in base alla data e all'ora è necessario utilizzare funzioni aggiuntive. A seconda dei criteri, potrebbe essere necessario incorporare GIORNO, MESE, ANNO o persino DATA e ORA nella funzione principale FILTRO di Google Sheets.
Suggerimento: se non avete familiarità con questi strumenti o se fate sempre confusione con le date, non preoccupatevi: lo strumento descritto alla fine non richiede alcuna funzione.
Esempio 1. La data è
Per ottenere gli ordini in scadenza il 9 gennaio 2020, invito a utilizzare la funzione DATA:
=FILTER(A1:E20,C1:C20=DATE(2020,1,9))
Nota: questo funziona solo se le celle non contengono unità di tempo insieme alla data (il foglio di calcolo potrebbe aggiungerle per impostazione predefinita). Per accertarsene, basta selezionare una cella e controllare ciò che appare nella barra della formula:
Se l'ora è presente e non è possibile rimuoverla, è necessario utilizzare una QUERY o una condizione più complessa nella funzione FILTRO di Google Sheets, come questa:
=FILTER(A1:E20,C1:C20>=DATE(2020,1,9),C1:C20
Suggerimento: di seguito parlo in modo più dettagliato delle condizioni multiple.
Esempio 2. La data contiene
Se si è interessati solo a un mese o a un anno in particolare, si possono usare le funzioni MESE e ANNO, inserendo l'intervallo con le date ( C1:C20 ) e specificare il numero del mese (o dell'anno) a cui deve essere uguale ( =1 ):
=FILTER(A1:E20,MONTH(C1:C20)=1)
Esempio 3. La data è prima/dopo
Per ottenere i dati che cadono prima o dopo la data specificata, sono necessari la funzione DATE e gli operatori di confronto come maggiore di (>), maggiore o uguale a (>=), minore di (<), minore o uguale a (<=).
Ecco gli ordini ricevuti a partire dal 1° gennaio 2020:
=FILTER(A1:E20,D1:D20>=DATE(2020,1,1))
Naturalmente, si può facilmente sostituire DATA con MESE o ANNO: il risultato non sarà diverso da quello precedente:
=FILTER(A1:E20,YEAR(D1:D20)>=2020)
Esempio 4. Tempo
Per filtrare in Google Sheets in base al tempo, l'operazione è esattamente la stessa che si esegue con le date: si utilizza la funzione aggiuntiva TEMPO.
Ad esempio, per ottenere solo i giorni con orario successivo alle 14:00, la formula sarà:
=FILTER(A1:B10,A1:A10>TIME(14,0,0))
Tuttavia, quando si tratta di utilizzare la funzione ORA (come per MESE per le date), le cose cambiano un po': l'ora è già abbastanza complicata nei fogli di calcolo, quindi è necessario qualche aggiustamento.
Per restituire tutte le righe con timestamp compresi tra 14:00 e 12:00 PM , fare questo:
- Racchiudere l'intervallo con i timestamp ( A1:A10 ) in una funzione ORARIO separata, che indicherà dove cercare.
- Quindi aggiungere un'altra funzione ORA per impostare l'ora stessa.
=FILTER(A1:B10,HOUR(A1:A10)>=HOUR("2:00:00 PM"))
Suggerimento: verificare che il risultato non includa 12:41 PM Questo perché il foglio di calcolo lo considera come 00:41 che è inferiore a 2:00 .
Se trovate una soluzione più elegante, condividetela nella sezione commenti qui sotto.
Come filtrare in Google Fogli utilizzando i riferimenti di cella
Ogni volta che si crea una formula di filtro in Google Fogli, è necessario inserire la condizione così com'è: se una parola o una sua parte, la data e così via, a meno che non si abbia familiarità con i riferimenti di cella.
Esse semplificano molte cose sulle formule, perché invece di digitare tutto, si può semplicemente fare riferimento alle celle con le condizioni.
Ricordate che ho cercato tutti gli ordini in ritardo? Posso fare rapidamente riferimento a E4 con il testo In ritardo di fare lo stesso:
=FILTER(A1:E20,E1:E20=E4)
Il risultato non sarà affatto diverso:
È possibile ripetere questa operazione con tutte le formule sopra citate, evitando ad esempio di aggiungere altre funzioni come DATE e limitandosi a fare riferimento alla cella con la data di interesse:
=FILTER(A1:E20,C1:C20=C15)
Suggerimento: i riferimenti alle celle consentono anche di filtrare da un altro foglio, basta riportare il nome del foglio:
=FILTRO(Ordini!A1:E20,Ordini!C1:C20=Ordini!C15)
Formule FILTRO di Google Sheets con criteri multipli
Sebbene in precedenza abbia utilizzato una sola condizione in tutte le formule di filtro di Google Sheets, è più probabile che dobbiate filtrare una tabella in base ad alcune condizioni alla volta.
Esempio 1. Logica IS BETWEEN
Per trovare tutte le righe che cadono tra due numeri/date/ore, gli argomenti opzionali della funzione sono utili condizione2 , condizione3 Si duplica ogni volta lo stesso intervallo, ma con una nuova condizione.
Senti, restituirò solo gli ordini che mi costano più di 250 dollari ma meno di 350 dollari:
=FILTER(A1:E20,B1:B20>=250,B1:B20<350)
Esempio 2. Logica OR nella funzione FILTRO di Google Sheets
Purtroppo, per ottenere tutte le righe che contengono record diversi in una colonna di interesse, il modo precedente non va bene. Quindi come posso controllare tutti gli ordini che sono sia in arrivo che in ritardo?
Se provo il metodo precedente e inserisco ogni stato dell'ordine in una condizione separata, ricevo l'errore #N/A:
Pertanto, per impostare correttamente la logica OR nella funzione FILTRO, dovrei sommare questi due criteri in una condizione:
=FILTRO(A1:E20,(E1:E20="In ritardo")+(E1:E20="In arrivo"))
Aggiungere un filtro a Google Fogli per più colonne
Ancora più probabile dell'applicazione di alcune condizioni a una colonna è la creazione di un filtro in Google Sheets per più colonne.
Gli argomenti sono tutti uguali, ma ogni nuova parte della formula richiede un nuovo intervallo con i propri criteri.
Proviamo a fare in modo che la funzione FILTRO di Google Sheets restituisca gli ordini che rientrano in tutte le regole seguenti:
- Dovrebbero avere un valore di 200-400 dollari:
A1:E20,B1:B20>=200,B1:B20<=400
- Sono previsti per gennaio 2020:
MESE(C1:C20)=1
- E sono ancora in viaggio:
E1:E20="in arrivo".
Mettete insieme tutte queste parti e la formula del filtro di Google Sheets per più colonne è pronta:
=FILTER(A1:E20,B1:B20>=200,B1:B20<=400,MONTH(C1:C20)=1,E1:E20="on the way")
Metodo privo di formule per filtri avanzati in Google Sheets
La funzione FILTRO è ottima, ma a volte può essere eccessiva: tenere traccia di tutti gli argomenti, i delimitatori, le funzioni annidate e così via può essere estremamente confuso e richiedere molto tempo.
Fortunatamente, abbiamo una soluzione migliore che trascende sia la funzione FILTRO di Google Fogli che il suo strumento standard: le corrispondenze multiple VLOOKUP.
Non lasciatevi ingannare dal suo nome: assomiglia alla funzione VLOOKUP di Google Sheets perché cerca le corrispondenze, proprio come fa la funzione FILTRO. Proprio come ho fatto sopra.
Ecco 5 vantaggi principali dello strumento sulla funzione FILTRO di Google Sheets:
- Non dovrete pensare a operatori per diverse condizioni - scegliete quello che fa per voi dall'elenco:
Vi invito a installare Multiple VLOOKUP Matches e a provarlo. Per esaminare più da vicino le sue opzioni, visitate la pagina del tutorial o guardate uno speciale video didattico: