Come eliminare ogni altra riga in Excel (o ogni ennesima riga)

Guarda il video - Elimina ogni altra riga in Excel

A volte potrebbe essere necessario eliminare ogni altra riga (ovvero righe alternate) o ogni terza/quarta/quinta riga in Excel.

Un caso d'uso di questo potrebbe essere quando hai dati settimanali e vuoi solo i dati per settimane pari o dispari. Un altro potrebbe essere quando ottieni un dump di dati da un database e tutti i dati utili sono solo in ogni seconda o terza riga.

Sebbene tu abbia sempre la possibilità di selezionare ed eliminare manualmente le righe, questo è inefficiente nel caso in cui disponi di un set di dati di grandi dimensioni.

Ci sono modi migliori per farlo.

In questo tutorial, ti mostrerò un paio di modi per eliminare ogni altra riga in Excel utilizzando una semplice tecnica di filtraggio. E se ti va bene usare un codice macro VBA, ho anche fornito un breve codice VBA che lo fa con un solo clic. I metodi mostrati in questo tutorial funzionano per tutte le versioni di Excel (2007, 2010, 2013 e 2016)

Mentre l'eliminazione di ogni altra riga in Excel può essere abbastanza semplice, potrebbe essere una sfida eliminare ogni altra colonna. Questo perché non puoi filtrare le colonne in Excel (il modo in cui puoi filtrare le righe). Nell'ultima sezione di questo tutorial, ti mostrerò anche alcuni modi per eliminare colonne alternative (o ogni ennesima colonna) in Excel.

Elimina ogni altra riga filtrando il set di dati (usando la formula)

Se potessi in qualche modo filtrare tutte le righe pari o dispari, sarebbe semplicissimo eliminare queste righe/record.

Sebbene non sia disponibile alcuna funzionalità integrata per eseguire questa operazione, è possibile utilizzare una colonna di supporto per dividere prima le righe in pari e dispari, quindi filtrare in base al valore della colonna di supporto.

Supponiamo di avere un set di dati come mostrato di seguito, che contiene dati di vendita per ogni rappresentante di vendita per due regioni (Stati Uniti e Canada) e di voler eliminare i dati per il Canada.

Di seguito sono riportati i passaggi per prima filtrare e quindi eliminare ogni altra riga (che contiene dati per il Canada):

  1. Nella cella adiacente all'intestazione dell'ultima colonna, inserisci il testo Colonna Helper (o qualsiasi testo di intestazione che vuoi che abbia la colonna helper)
  2. Nella cella sotto l'intestazione della colonna helper, inserisci la seguente formula: =SEVEN(RIGA()). Copia questa formula per tutte le celle. Questa formula restituisce VERO per tutte le righe pari e FALSO per tutte le righe DISPARI
  3. Seleziona l'intero set di dati (comprese le celle in cui abbiamo inserito la formula nel passaggio precedente).
  4. Fare clic sulla scheda Dati
  5. Fare clic sull'icona Filtro. Questo applicherà un filtro a tutte le intestazioni nel set di dati
  6. Fare clic sull'icona Filtro nella cella HelperColumn.
  7. Deseleziona l'opzione VERO (quindi viene selezionata solo l'opzione FALSO)
  8. Fare clic su OK. Questo filtrerà i dati e mostrerà solo quei record in cui il valore HelperColumn è FALSE.
  9. Seleziona tutte le celle filtrate nella colonna helper (esclusa l'intestazione)
  10. Fare clic con il pulsante destro del mouse su una delle celle selezionate e fare clic su "Elimina riga"
  11. Nella finestra di dialogo che si apre, fai clic su OK. Questo eliminerà tutti i record visibili e per ora vedrai solo la riga di intestazione.
  12. Fare clic sulla scheda Dati e quindi sull'icona Filtro. Questo rimuoverà il filtro e sarai in grado di vedere tutti i record rimanenti.

I passaggi precedenti filtrano ogni seconda riga nel set di dati e quindi eliminano tali righe.

Non preoccuparti dei valori della colonna helper in questa fase. I dati risultanti hanno solo le righe per gli Stati Uniti e tutte le righe per il Canada vengono eliminate. Ora puoi eliminare la colonna helper.

Nel caso in cui si desideri eliminare ogni altra riga a partire dalla prima riga in poi, selezionare l'opzione VERO nel passaggio 7 e deselezionare l'opzione FALSO.

Note: Quando elimini le righe in Excel utilizzando il metodo sopra, elimina anche tutti i dati che potresti avere nell'intero (a parte quello nel set di dati). Quando utilizzi questo metodo, assicurati di non avere nulla a sinistra e a destra del set di dati che stai eliminando.

Sebbene il metodo sopra sia ottimo, presenta due inconvenienti:

  1. È necessario aggiungere una nuova colonna (il Colonna Helper nel nostro esempio sopra)
  2. Può richiedere molto tempo se devi eliminare righe alternative, fallo spesso
Esercitazione correlata: Elimina righe in base a un valore di cella (o condizione) in Excel

Elimina ogni ennesima riga filtrando il set di dati (usando la formula)

Nel metodo sopra, ti ho mostrato come eliminare ogni altra riga (riga alternativa) in Excel.

E puoi usare la stessa logica per eliminare anche ogni terza o quarta riga in Excel.

Supponiamo di avere un set di dati come mostrato di seguito e di voler eliminare tutto ogni terza riga.

I passaggi per eliminare ogni terza riga sono quasi gli stessi di quelli trattati nella sezione precedente (per l'eliminazione di righe alternate). L'unica differenza è nella formula utilizzata nel passaggio 2.

Di seguito sono riportati i passaggi per eseguire questa operazione:

  1. Nella cella adiacente all'intestazione dell'ultima colonna, inserisci il testo Colonna Helper (o qualsiasi testo di intestazione che vuoi che abbia la colonna helper)
  2. Nella cella sotto l'intestazione della colonna helper, inserisci la seguente formula: =MOD(RIGA(),3)=1. Questa formula restituisce VERO per ogni terza riga e FALSO per ogni altra riga.
  3. Seleziona l'intero set di dati (comprese le celle in cui abbiamo inserito la formula nel passaggio precedente).
  4. Fare clic sulla scheda Dati
  5. Fare clic sull'icona Filtro. Questo applicherà un filtro a tutte le intestazioni nel set di dati
  6. Fare clic sull'icona Filtro nella cella HelperColumn.
  7. Deseleziona l'opzione VERO (quindi viene selezionata solo l'opzione FALSO)
  8. Fare clic su OK. Questo filtrerà i dati e mostrerà solo quei record in cui il valore HelperColumn è FALSE.
  9. Seleziona tutte le celle nella colonna helper
  10. Fare clic con il tasto destro su una delle celle selezionate e fare clic su Elimina riga
  11. Nella finestra di dialogo che si apre, fai clic su OK. Questo eliminerà tutti i record visibili e per ora vedrai solo la riga di intestazione.
  12. Fare clic sulla scheda Dati e quindi sull'icona Filtro. Questo rimuoverà il filtro e sarai in grado di vedere tutti i record rimanenti.

I passaggi precedenti eliminerebbero ogni terza riga dal set di dati e otterresti i dati risultanti come mostrato di seguito.

Non preoccuparti dei valori della colonna helper in questa fase. Ora puoi eliminare la colonna helper.

La formula utilizzata nel passaggio 2 utilizza la funzione MOD, che fornisce il resto quando un numero viene diviso per l'altro. Qui ho usato la funzione ROW per ottenere il numero di riga ed è diviso per 3 (perché vogliamo eliminare ogni terza riga).

Poiché il nostro set di dati inizia dalla seconda riga in poi (ovvero, la riga n. 2 contiene il primo record), utilizzo la seguente formula:=MOD(RIGA(),3)=1

Lo sto equiparando a 1 e per ogni terza riga, la formula MOD darà il resto come 1.

Puoi modificare la formula di conseguenza. Ad esempio, se il primo record del tuo set di dati inizia dalla terza riga in poi, la formula sarebbe =MOD(RIGA(),3)=2

Elimina automaticamente ogni altra riga (o ennesima riga) utilizzando la macro VBA (metodo rapido)

Se devi eliminare ogni altra riga (o ogni nesima riga) abbastanza spesso, puoi utilizzare un codice VBA e averlo a disposizione nella barra di accesso rapido. Ciò ti consentirà di eliminare rapidamente le righe alternative con un solo clic.

Di seguito è riportato il codice che prima chiede di selezionare l'intervallo in cui si desidera eliminare le righe alternative, quindi eliminare ogni seconda riga nel set di dati selezionato.

Sub Delete_Every_Other_Row() Dim Rng As Range Set Rng = Application.InputBox("Seleziona l'intervallo (escluse le intestazioni)", "Selezione intervallo", Tipo:=8) For i = Rng.Rows.Count To 1 Step -2 If i Mod 2 = 0 Then Rng.Rows(i).Delete End If Next i End Sub

Quando esegui il codice sopra, ti chiederà prima di selezionare l'intervallo di celle. Una volta effettuata la selezione, passerà attraverso ogni riga ed eliminerà ogni seconda riga.

Se invece desideri eliminare ogni terza riga, puoi utilizzare il codice seguente:

Sub Delete_Every_Third_Row() Dim Rng As Range Set Rng = Application.InputBox("Seleziona l'intervallo (escluse le intestazioni)", "Selezione intervallo", Type:=8) For i = Rng.Rows.Count To 1 Step -3 If i Mod 3 = 0 Then Rng.Rows(i).Delete End If Next i End Sub

Dove inserire questo codice macro VBA?

Devi inserire questo codice in un modulo normale nell'editor VB in Excel.

Di seguito sono riportati i passaggi per aprire l'editor Vb, aggiungere un modulo e inserire il codice al suo interno:

  1. Copia il codice VBA sopra.
  2. Vai alla scheda Sviluppatore.
  3. Fare clic su Visual Basic.
  4. Nell'editor VB, fare clic con il pulsante destro del mouse su uno degli oggetti della cartella di lavoro.
  5. Vai su Inserisci e fai clic su Modulo.
  6. Nel modulo, incolla il codice VBA sopra.
  7. Chiudi l'editor VB.

Una volta che hai il codice nell'editor VB, puoi utilizzare i seguenti metodi per eseguire il codice:

  • Esegui una macro dall'editor VB (facendo clic sul pulsante di riproduzione verde nella barra degli strumenti dell'editor VB)
  • Posizionando il cursore su qualsiasi riga del codice e utilizzando il tasto F5
  • Assegnando la macro a un pulsante/forma
  • Aggiungendo la macro alla barra degli strumenti di accesso rapido
Ecco un tutorial dettagliato su come eseguire una macro in Excel.

Se devi farlo spesso, puoi considerare di aggiungere il codice VBA alla cartella di lavoro macro personale. In questo modo, sarà sempre disponibile per l'uso in tutte le cartelle di lavoro.

Quando si dispone di un codice VBA in una cartella di lavoro, è necessario salvarlo come file con attivazione macro (con estensione .XLSM)

Nota: poiché tutte le modifiche apportate dal codice VBA sono irreversibili, è meglio eseguire prima una copia di backup della cartella di lavoro/foglio di lavoro e quindi eseguire questo codice.

Elimina ogni altra colonna (o ogni ennesima colonna)

L'eliminazione di ogni riga alternativa o ogni terza/quarta riga è semplificata in quanto è possibile utilizzare l'opzione di filtro. Tutto quello che devi fare è utilizzare una formula che identifichi le righe alternate (o ogni terza/quarta riga) e filtri queste righe.

Sfortunatamente, questa stessa metodologia non funzionerà con le colonne, poiché non puoi filtrare le colonne nel modo in cui filtri le righe.

Quindi, se devi eliminare ogni altra colonna (o ogni terza/quarta/ennesima colonna), devi essere un po' più creativo.

In questa sezione, ti mostrerò due metodi che puoi utilizzare per eliminare ogni altra colonna in Excel (e puoi utilizzare lo stesso metodo per eliminare ogni terza/quarta/ennesima colonna se lo desideri).

Elimina colonne alternative utilizzando formule e metodo di ordinamento

Supponiamo di avere un set di dati come mostrato di seguito e di voler eliminare ogni altra colonna (esclusa la colonna di intestazione A)

Il trucco qui sarebbe identificare colonne alternative usando una formula e quindi ordinare le colonne in base a quella formula. Una volta che hai le colonne ordinate insieme, puoi selezionarle ed eliminarle manualmente.

Di seguito sono riportati i passaggi per eliminare ogni altra colonna in Excel:

  1. Inserisci una riga sopra la riga dell'intestazione (fai clic con il pulsante destro del mouse su qualsiasi cella nell'intestazione, fai clic su Inserisci e quindi fai clic sull'opzione Intera riga)
  2. Inserisci la seguente formula nella cella sopra la colonna più a sinistra nel set di dati e copia per tutte le celle: =MOD(COLONNA(),2)
  3. Converti i valori della formula in numeri. Per fare ciò, copia le celle, fai clic con il pulsante destro del mouse e vai su Incolla speciale -> Incolla valori.
  4. Seleziona l'intero set di dati (escluse le intestazioni nella colonna). In questo esempio, ho selezionato B1:G14 (e NON colonna A)
  5. Fare clic sulla scheda Dati
  6. Fare clic sull'icona Ordina
  7. Nella finestra di dialogo Ordina, apportare le seguenti modifiche:
    • Fare clic sul pulsante "Opzioni" e nella finestra di dialogo che si apre, fare clic su "Ordina da sinistra a destra", quindi fare clic su OK
    • Nel menu a discesa Ordina per, seleziona Riga 1. Questa è la riga con i risultati della formula
    • Nel menu a discesa Ordine, seleziona Dal più piccolo al più grande.
  8. Fare clic su OK

I passaggi precedenti ordinano tutte le colonne e riuniscono tutte le colonne alternative in un unico posto (alla fine).

Ora puoi selezionare tutte queste colonne (per le quali il valore della formula è 1) ed eliminarle.

Sebbene questa non sia la soluzione migliore, riesce comunque a portare a termine il lavoro.

Nel caso in cui desideri eliminare ogni terza colonna o ogni quarta colonna, devi regolare la formula di conseguenza.

Esercitazione correlata: Come ORDINARE in Excel (per righe, colonne, colori, date e numeri)

Elimina colonne alternative usando VBA

Un altro modo rapido per eliminare colonne alternative è utilizzare il codice VBA seguente:

Sub Delete_Every_Other_Column() Dim Rng As Range Set Rng = Application.InputBox("Seleziona l'intervallo (escluse le intestazioni)", "Selezione intervallo", Type:=8) For i = Rng.Columns.Count To 1 Step -2 If i Mod 2 = 0 Then Rng.Columns(i).Delete End If Next i End Sub

Il codice sopra ti chiede di selezionare un intervallo di celle che ha le colonne. Qui è necessario selezionare le colonne escludendo quella che ha l'intestazione.

Dopo aver specificato l'intervallo di celle con i dati, utilizzerà un ciclo For ed eliminerà ogni altra colonna.

Nel caso in cui desideri eliminare ogni terza colonna, puoi utilizzare il codice seguente (e regolare di conseguenza per eliminare l'ennesima colonna)

Sub Delete_Every_Third_Column() Dim Rng As Range Set Rng = Application.InputBox("Seleziona l'intervallo (escluse le intestazioni)", "Selezione intervallo", Type:=8) For i = Rng.Columns.Count To 1 Step -3 If i Mod 3 = 0 Then Rng.Columns(i).Delete End If Next i End Sub

I passaggi su dove posizionare questo codice VBA e come utilizzarlo sono trattati nella sezione precedente intitolata - "Elimina automaticamente ogni altra riga (o ennesima riga) utilizzando la macro VBA (metodo rapido)"

Spero che tu abbia trovato utile questo tutorial di Excel.

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave