- Filtra le righe in base a valore/condizione e poi eliminalo
- Ordina il set di dati e quindi elimina le righe
- Trova e seleziona le celle in base al valore della cella e quindi elimina le righe
- Elimina tutte le righe con una cella vuota
- Filtra ed elimina righe in base al valore della cella (usando VBA)
Quando si lavora con set di dati di grandi dimensioni, potrebbe essere necessario eliminare rapidamente le righe in base ai valori delle celle in esse contenute (o in base a una condizione).
Ad esempio, considera i seguenti esempi:
- Si dispone di dati di rappresentante di vendita e si desidera eliminare tutti i record per una regione o un prodotto specifico.
- Vuoi eliminare tutti i record in cui il valore di vendita è inferiore a 100.
- Vuoi eliminare tutte le righe in cui è presente una cella vuota.
Esistono diversi modi per scuoiare questo gatto di dati in Excel.
Il metodo che scegli per eliminare le righe dipenderà da come sono strutturati i tuoi dati e qual è il valore della cella o la condizione in base alla quale desideri eliminare queste righe.
In questo tutorial, ti mostrerò diversi modi per eliminare le righe in Excel in base a un valore di cella o a una condizione.
Filtra le righe in base a valore/condizione e poi eliminalo
Uno dei modi più veloci per eliminare le righe che contengono un valore specifico o che soddisfano una determinata condizione è filtrarle. Una volta che hai i dati filtrati, puoi eliminare tutte queste righe (mentre le righe rimanenti rimangono intatte).
Il filtro Excel è abbastanza versatile e puoi filtrare in base a molti criteri (come testo, numeri, date e colori)
Vediamo due esempi in cui è possibile filtrare le righe ed eliminarle.
Elimina righe che contengono un testo specifico
Supponiamo di avere un set di dati come mostrato di seguito e di voler eliminare tutte le righe in cui la regione è Mid-west (nella colonna B).
Mentre in questo piccolo set di dati puoi scegliere di eliminare queste righe manualmente, spesso i tuoi set di dati saranno enormi dove l'eliminazione manuale delle righe non sarà un'opzione.
In tal caso, puoi filtrare tutti i record in cui la regione è Mid-West e quindi eliminare tutte queste righe (mantenendo intatte le altre righe).
Di seguito sono riportati i passaggi per eliminare le righe in base al valore (tutti i record Mid-West):
- Seleziona qualsiasi cella nel set di dati da cui desideri eliminare le righe
- Fare clic sulla scheda Dati
- Nel gruppo "Ordina e filtra", fai clic sull'icona Filtro. Questo applicherà i filtri a tutte le celle delle intestazioni nel set di dati
- Fare clic sull'icona Filtro nella cella di intestazione Regione (questa è una piccola icona a triangolo rivolta verso il basso in alto a destra della cella)
- Deseleziona tutte le altre opzioni tranne l'opzione Mid-West (un modo rapido per farlo è fare clic sull'opzione Seleziona tutto e quindi fare clic sull'opzione Mid-West). Questo filtrerà il set di dati e mostrerà solo i record per la regione Mid-West.
- Seleziona tutti i record filtrati
- Fare clic con il pulsante destro del mouse su una delle celle selezionate e fare clic su "Elimina riga"
- Nella finestra di dialogo che si apre, fai clic su OK. A questo punto, non vedrai alcun record nel set di dati.
- Fare clic sulla scheda Dati e fare clic sull'icona Filtro. Questo rimuoverà il filtro e vedrai tutti i record tranne quelli eliminati.
I passaggi precedenti filtrano prima i dati in base a un valore di cella (o possono essere altre condizioni come dopo/prima di una data o maggiore/minore di un numero). Una volta che hai i record, li cancelli semplicemente.
Alcune scorciatoie utili da conoscere per accelerare il processo:
- Ctrl + Maiusc + L per applicare o rimuovere il filtro
- Controllo + - (tieni premuto il tasto Ctrl e premi il tasto meno) per eliminare le celle/righe selezionate
Nell'esempio sopra, avevo solo quattro regioni distinte e potevo selezionarle e deselezionarle manualmente dall'elenco Filtro (nei passaggi 5 sopra).
Nel caso in cui tu abbia molte categorie/regioni, puoi digitare il nome nel campo proprio sopra la casella (che ha questi nomi di regione) ed Excel ti mostrerà solo quei record che corrispondono al testo inserito (come mostrato di seguito). Una volta ottenuto il testo in base al quale desideri filtrare, premi il tasto Invio.
Nota che quando elimini una riga, tutto ciò che potresti avere in altre celle in queste righe andrà perso. Un modo per aggirare questo problema è creare una copia dei dati in un altro foglio di lavoro ed eliminare le righe nei dati copiati. Una volta fatto, copialo al posto dei dati originali.
o
Puoi usare i metodi mostrati più avanti in questo tutorial (usando il metodo Sort o il metodo Find All)
Elimina righe in base a una condizione numerica
Proprio come ho usato il metodo del filtro per eliminare tutte le righe che contengono il testo Mid-West, puoi anche usare una condizione numerica (o una condizione data).
Ad esempio, supponiamo di avere il set di dati seguente e di voler eliminare tutte le righe in cui il valore di vendita è inferiore a 200.
Di seguito sono riportati i passaggi per eseguire questa operazione:
- Seleziona qualsiasi cella nei dati
- Fare clic sulla scheda Dati
- Nel gruppo "Ordina e filtra", fai clic sull'icona Filtro. Questo applicherà i filtri a tutte le celle delle intestazioni nel set di dati
- Fare clic sull'icona Filtro nella cella di intestazione Vendite (questa è una piccola icona a triangolo rivolta verso il basso in alto a destra della cella)
- Passa il cursore sull'opzione Filtri numerici. Questo ti mostrerà tutte le opzioni di filtro relative al numero in Excel.
- Fare clic sull'opzione "Meno di".
- Nella finestra di dialogo "Filtro automatico personalizzato" che si apre, inserisci il valore "200" nel campo
- Fare clic su OK. Questo filtrerà e mostrerà solo quei record in cui il valore delle vendite è inferiore a 200
- Seleziona tutti i record filtrati
- Fare clic con il pulsante destro del mouse su una delle celle e fare clic su Elimina riga
- Nella finestra di dialogo che si apre, fai clic su OK. A questo punto, non vedrai alcun record nel set di dati.
- Fare clic sulla scheda Dati e fare clic sull'icona Filtro. Questo rimuoverà il filtro e vedrai tutti i record tranne quelli eliminati.
Esistono molti filtri numerici che puoi utilizzare in Excel, ad esempio minore/maggiore, uguale/non uguale, tra, primi 10, sopra o sotto la media, ecc.
Nota: puoi anche utilizzare più filtri. Ad esempio, è possibile eliminare tutte le righe in cui il valore delle vendite è maggiore di 200 ma minore di 500. In questo caso, è necessario utilizzare due condizioni di filtro. La finestra di dialogo Filtro automatico personalizzato consente di avere due criteri di filtro (AND e OR).Proprio come i filtri numerici, puoi anche filtrare i record in base alla data. Ad esempio, se desideri rimuovere tutti i record del primo trimestre, puoi farlo utilizzando gli stessi passaggi precedenti. Quando lavori con i filtri Data, Excel ti mostra automaticamente i filtri pertinenti (come mostrato di seguito).
Sebbene il filtraggio sia un ottimo modo per eliminare rapidamente le righe in base a un valore o una condizione, ha uno svantaggio: elimina l'intera riga. Ad esempio, nel caso seguente, eliminerebbe tutti i dati a destra del set di dati filtrato.
Cosa succede se voglio solo eliminare i record dal set di dati, ma voglio mantenere intatti i dati rimanenti.
Non puoi farlo con il filtro, ma puoi farlo con l'ordinamento.
Ordina il set di dati e quindi elimina le righe
Sebbene l'ordinamento sia un altro modo per eliminare le righe in base al valore, ma nella maggior parte dei casi, è meglio utilizzare il metodo di filtro illustrato sopra.
Questa tecnica di ordinamento è consigliata solo quando si desidera eliminare le celle con i valori e non le intere righe.
Supponiamo di avere un set di dati come mostrato di seguito e di voler eliminare tutti i record in cui la regione è Mid-west.
Di seguito sono riportati i passaggi per eseguire questa operazione utilizzando l'ordinamento:
- Seleziona qualsiasi cella nei dati
- Fare clic sulla scheda Dati
- Nel gruppo Ordina e filtra, fai clic sull'icona Ordina.
- Nella finestra di dialogo Ordina che si apre, seleziona Regione nella colonna Ordina per.
- Nell'opzione Ordina su, assicurati che Valori cella sia selezionato
- Nell'opzione Ordine, seleziona dalla A alla Z (o dalla Z alla A, non importa).
- Fare clic su OK. Questo ti darà il set di dati ordinato come mostrato di seguito (ordinato per colonna B).
- Seleziona tutti i record con la regione Mid-West (tutte le celle nelle righe, non solo la colonna della regione)
- Una volta selezionato, fare clic con il pulsante destro del mouse e quindi fare clic su Elimina. Questo aprirà la finestra di dialogo Elimina.
- Assicurati che l'opzione "Sposta celle in alto" sia selezionata.
- Fare clic su OK.
I passaggi precedenti eliminerebbero tutti i record in cui la regione era Mid-West, ma non elimina l'intera riga. Quindi, se hai dei dati a destra o a sinistra del tuo set di dati, rimarranno illesi.
Nell'esempio sopra, ho ordinato i dati in base al valore della cella, ma puoi anche utilizzare gli stessi passaggi per ordinare in base a numeri, date, colore della cella o colore del carattere, ecc.
Ecco una guida dettagliata su come ordinare i dati in ExcelNel caso in cui si desideri mantenere l'ordine del set di dati originale ma rimuovere i record in base a criteri, è necessario disporre di un modo per riordinare i dati su quello originale. Per fare ciò, aggiungi una colonna con i numeri di serie prima di ordinare i dati. Una volta che hai finito con l'eliminazione delle righe/record, ordina semplicemente in base a questa colonna extra che hai aggiunto.
Trova e seleziona le celle in base al valore della cella e quindi elimina le righe
Excel ha una funzionalità Trova e sostituisci che può essere ottima quando vuoi trovare e selezionare celle con un valore specifico.
Dopo aver selezionato queste celle, puoi facilmente eliminare le righe.
Supponiamo di avere il set di dati come mostrato di seguito e di voler eliminare tutte le righe in cui la regione è Mid-West.
Di seguito sono riportati i passaggi per eseguire questa operazione:
- Seleziona l'intero set di dati
- Fare clic sulla scheda Home
- Nel gruppo Modifica, fai clic sull'opzione "Trova e seleziona", quindi fai clic su Trova (puoi anche utilizzare la scorciatoia da tastiera Ctrl + F).
- Nella finestra di dialogo Trova e sostituisci, inserisci il testo "Mid-West" nel campo "Trova cosa:".
- Fare clic su Trova tutto. Questo ti mostrerà immediatamente tutte le istanze del testo Mid-West che Excel è stato in grado di trovare.
- Usa la scorciatoia da tastiera Ctrl + A per selezionare tutte le celle trovate da Excel. Sarai anche in grado di vedere tutte le celle selezionate nel set di dati.
- Fare clic con il pulsante destro del mouse su una delle celle selezionate e fare clic su Elimina. Questo aprirà la finestra di dialogo Elimina.
- Seleziona l'opzione "Intera riga"
- Fare clic su OK.
I passaggi precedenti eliminerebbero tutte le celle in cui il valore della regione è Mid-west.
Nota: poiché Trova e sostituisci può gestire caratteri jolly, è possibile utilizzarli quando si trovano dati in Excel. Ad esempio, se si desidera eliminare tutte le righe in cui la regione è Mid-West o South-West, è possibile utilizzare "*Ovest' come testo da trovare nella finestra di dialogo Trova e sostituisci. Questo ti darà tutte le celle in cui il testo termina con la parola Ovest.Elimina tutte le righe con una cella vuota
Nel caso in cui desideri eliminare tutte le righe in cui sono presenti celle vuote, puoi farlo facilmente con una funzionalità integrata in Excel.
È il Celle speciali Go-To opzione - che consente di selezionare rapidamente tutte le celle vuote. E una volta selezionate tutte le celle vuote, eliminarle è semplicissimo.
Supponiamo di avere il set di dati come mostrato di seguito e di voler eliminare tutte le righe in cui non ho il valore di vendita.
Di seguito sono riportati i passaggi per eseguire questa operazione:
- Seleziona l'intero set di dati (A1: D16 in questo caso).
- premi il F5 chiave. Si aprirà la finestra di dialogo "Vai a" (puoi anche ottenere questa finestra di dialogo da Home -> Modifica -> Trova e seleziona -> Vai a).
- Nella finestra di dialogo "Vai a", fare clic sul pulsante Speciale. Si aprirà la finestra di dialogo "Vai a speciale"
- Nella finestra di dialogo Vai a speciale, seleziona "Vuoti".
- Fare clic su OK.
I passaggi precedenti selezionerebbero tutte le celle vuote nel set di dati.
Una volta selezionate le celle vuote, fai clic con il pulsante destro del mouse su una delle celle e fai clic su Elimina.
Nella finestra di dialogo Elimina, seleziona l'opzione "Intera riga" e fai clic su OK. Questo eliminerà tutte le righe che contengono celle vuote.
Se sei interessato a saperne di più su questa tecnica, ho scritto un tutorial dettagliato su come eliminare le righe con celle vuote. Include il metodo "Vai a speciale" e un metodo VBA per eliminare le righe con celle vuote.
Filtra ed elimina righe in base al valore della cella (usando VBA)
L'ultimo metodo che ti mostrerò include un po' di VBA.
È possibile utilizzare questo metodo se è necessario eliminare spesso le righe in base a un valore specifico in una colonna. Puoi aggiungere il codice VBA una volta e aggiungerlo alla cartella di lavoro Macro personale. In questo modo sarà disponibile per l'uso in tutte le cartelle di lavoro di Excel.
Questo codice funziona allo stesso modo del metodo Filter illustrato sopra (tranne il fatto che esegue tutti i passaggi nel back-end e consente di risparmiare alcuni clic).
Supponiamo di avere il set di dati come mostrato di seguito e di voler eliminare tutte le righe in cui la regione è Mid-West.
Di seguito è riportato il codice VBA che lo farà.
Sub DeleteRowsWithSpecificText() 'Source: https://trumpexcel.com/delete-rows-based-on-cell-value/ ActiveCell.AutoFilter Field:=2, Criteria1:="Mid-West" ActiveSheet.AutoFilter.Range.Offset (1, 0).Rows.SpecialCells(xlCellTypeVisible).Elimina End Sub
Il codice sopra utilizza il metodo VBA Autofilter per filtrare prima le righe in base ai criteri specificati (che è "Mid-West"), quindi selezionare tutte le righe filtrate ed eliminarle.
Nota che ho usato Offset nel codice sopra per assicurarmi che la mia riga di intestazione non venga cancellata.
Il codice sopra non funziona se i tuoi dati si trovano in una tabella Excel. La ragione di ciò è che Excel considera una tabella Excel come un oggetto elenco. Quindi, se vuoi eliminare le righe che si trovano in una tabella, devi modificare un po' il codice (trattato più avanti in questo tutorial).Prima di eliminare le righe, ti mostrerà un prompt come mostrato di seguito. Lo trovo utile in quanto mi consente di ricontrollare la riga filtrata prima di eliminarla.
Ricorda che quando elimini le righe utilizzando VBA, non puoi annullare questa modifica. Quindi usalo solo quando sei sicuro che funzioni nel modo desiderato. Inoltre, è una buona idea conservare una copia di backup dei dati nel caso qualcosa vada storto.Nel caso in cui i tuoi dati si trovino in una tabella Excel, utilizza il codice seguente per eliminare le righe con un valore specifico:
Sub DeleteRowsinTables() 'Source:https://trumpexcel.com/delete-rows-based-on-cell-value/ Dim Tbl As ListObject Set Tbl = ActiveSheet.ListObjects(1) ActiveCell.AutoFilter Field:=2, Criteria1: ="Mid-West" Tbl.DataBodyRange.SpecialCells(xlCellTypeVisible).Elimina End Sub
Poiché VBA considera Excel Table come un oggetto List (e non un intervallo), ho dovuto modificare il codice di conseguenza.
Dove inserire il codice VBA?
Questo codice deve essere inserito nel backend di VB Editor in un modulo.
Di seguito sono riportati i passaggi che ti mostreranno come eseguire questa operazione:
- Apri la cartella di lavoro in cui desideri aggiungere questo codice.
- Usa la scorciatoia da tastiera ALT + F11 per aprire la finestra dell'editor VBA.
- In questa finestra dell'editor VBA, a sinistra, c'è un riquadro "Esplora progetti" (che elenca tutte le cartelle di lavoro e gli oggetti dei fogli di lavoro). Fare clic con il pulsante destro del mouse su qualsiasi oggetto nella cartella di lavoro (in cui si desidera che questo codice funzioni), posizionare il cursore su "Inserisci" e quindi fare clic su "Modulo". Questo aggiungerà l'oggetto Modulo alla cartella di lavoro e aprirà anche la finestra del codice del modulo a destra
- Nella finestra del modulo (che apparirà sulla destra), copia e incolla il codice sopra.
Una volta che hai il codice nell'editor VB, puoi eseguire il codice utilizzando uno dei metodi seguenti (assicurati di aver selezionato qualsiasi cella nel set di dati su cui desideri eseguire questo codice):
- Seleziona qualsiasi riga all'interno del codice e premi il tasto F5.
- Fare clic sul pulsante Esegui nella barra degli strumenti nell'editor VB
- Assegna la macro a un pulsante o a una forma ed eseguila facendo clic su di essa nel foglio di lavoro stesso
- Aggiungilo alla barra di accesso rapido ed esegui il codice con un solo clic.
Puoi leggere tutto su come eseguire il codice macro in Excel in questo articolo.
Nota: poiché la cartella di lavoro contiene un codice macro VBA, è necessario salvarlo nel formato abilitato per le macro (xlsm).