Sommario
Questa breve esercitazione spiega come eliminare ogni altra riga in Excel tramite filtri o codice VBA. Imparerete anche a rimuovere ogni 3a, 4a o qualsiasi altra Na riga.
Ci sono molte situazioni in cui può essere necessario eliminare righe alternative nei fogli di lavoro di Excel. Ad esempio, si potrebbe voler mantenere i dati delle settimane pari (righe 2, 4, 6, 8, ecc.) e spostare tutte le settimane dispari (righe 3, 5, 7, ecc.) in un altro foglio.
In generale, l'eliminazione di ogni altra riga in Excel si riduce alla selezione di righe alternative. Una volta selezionate le righe, un singolo tratto sul tasto Cancellare Più avanti in questo articolo, imparerete alcune tecniche per selezionare ed eliminare rapidamente ogni altra o ogni nesima riga in Excel.
Come eliminare ogni altra riga in Excel mediante un filtro
In sostanza, un modo comune per cancellare ogni altra riga in Excel è il seguente: prima si filtrano le righe alternate, poi si selezionano e si eliminano tutte in una volta. I passaggi dettagliati sono riportati di seguito:
- In una colonna vuota accanto ai dati originali, inserite una sequenza di zeri e uno. Potete farlo rapidamente digitando 0 nella prima cella e 1 nella seconda, quindi copiare le prime due celle e incollarle lungo la colonna fino all'ultima cella con i dati.
In alternativa, è possibile utilizzare questa formula:
=MOD(ROW(),2)
La logica della formula è molto semplice: la funzione ROW restituisce il numero della riga corrente, la funzione MOD lo divide per 2 e restituisce il resto arrotondato al numero intero.
Il risultato è 0 in tutte le righe pari (perché vengono divise per 2 in modo uniforme senza resto) e 1 in tutte le righe dispari:
- A seconda che si vogliano eliminare righe pari o dispari, filtrare gli uni o gli zeri.
Per farlo, selezionare una cella qualsiasi della colonna Helper, andare alla voce Dati scheda> Ordinamento e filtro e fare clic sul pulsante Filtro Le frecce di filtro a discesa appariranno in tutte le celle di intestazione. Fate clic sul pulsante con la freccia nella colonna Helper e selezionate una delle caselle:
- 0 per eliminare le righe pari
- 1 per eliminare le righe dispari
In questo esempio, vogliamo rimuovere le righe con valori "0", quindi le filtriamo:
- Ora che tutte le righe "1" sono nascoste, selezionare tutte le righe "0" visibili, fare clic con il tasto destro del mouse sulla selezione e fare clic su Elimina riga :
- Il passo precedente ha lasciato una tabella vuota, ma non preoccupatevi, le righe "1" sono ancora lì. Per renderle di nuovo visibili, è sufficiente rimuovere il filtro automatico facendo clic sul tasto Filtro di nuovo il pulsante:
- La formula nella colonna C viene ricalcolata per le righe rimanenti, ma non è più necessaria. A questo punto si può tranquillamente eliminare la colonna Helper:
Di conseguenza, nel nostro foglio di lavoro sono rimaste solo le settimane pari, mentre quelle dispari sono sparite!
Se si desidera spostare tutte le righe in un'altra posizione anziché eliminarle del tutto, copiare prima le righe filtrate e incollarle in una nuova posizione, quindi eliminare le righe filtrate.
Come eliminare le righe alternate in Excel con VBA
Se non volete perdere tempo in un'attività banale come l'eliminazione di ogni altra riga nei vostri fogli di lavoro Excel, la seguente macro VBA può automatizzare il processo per voi:
Sub Delete_Alternate_Rows_Excel() Dim SourceRange As Range Set SourceRange = Application.Selection Set SourceRange = Application.InputBox( "Range:" , "Select the range" , SourceRange.Address, Type :=8) If SourceRange.Rows.Count>= 2 Then Dim FirstCell As Range Dim RowIndex As Integer Application.ScreenUpdating = False For RowIndex = SourceRange.Rows.Count - (SourceRange.Rows.Count Mod 2) To 1Passo -2 Set FirstCell = SourceRange.Cells(RowIndex, 1) FirstCell.EntireRow.Delete Next Application.ScreenUpdating = True End If End SubCome eliminare ogni altra riga in Excel utilizzando la macro
Inserite la macro nel foglio di lavoro nel modo consueto tramite l'editor di Visual Basic:
- Premete Alt + F11 per aprire la finestra di Visual Basic for Applications.
- Nella barra dei menu superiore, fare clic su Inserire > Modulo e incollare la macro di cui sopra nella cartella Modulo
- Premere il tasto F5 per eseguire la macro.
- Viene visualizzata una finestra di dialogo che richiede di selezionare un intervallo. Selezionare la tabella e fare clic su OK:
Tutte le altre righe dell'intervallo selezionato vengono eliminate:
Come eliminare ogni nesima riga in Excel
Per questo compito, amplieremo la tecnica di filtraggio che abbiamo utilizzato per rimuovere ogni altra riga. La differenza sta nella formula su cui si basa il filtraggio:
MOD(ROW()- m , n )Dove:
- m è il numero di riga della prima cella con i dati meno 1
- n è l'ennesima riga che si vuole cancellare
Supponiamo che i dati inizino dalla riga 2 e che si voglia eliminare ogni 3a riga. Quindi, nella formula n è uguale a 3 e m è uguale a 1 (riga 2 meno 1):
=MOD(RIGA() - 1, 3)
Se i dati iniziano dalla riga 3, allora m sarebbe uguale a 2 (riga 3 meno 1), e così via. Questa correzione è necessaria per numerare le righe in modo sequenziale, a partire dalla numero 1.
La formula consiste nel dividere un numero di riga relativo per 3 e restituire il resto dopo la divisione. Nel nostro caso, produce zero per ogni terza riga perché ogni terzo numero si divide per 3 senza resto (3,6,9, ecc.):
Ora si eseguono i passaggi già noti per filtrare le righe "0":
- Selezionare una cella qualsiasi della tabella e fare clic sul pulsante Filtro sul pulsante Dati
- Filtrare la colonna Helper per mostrare solo i valori "0".
- Selezionare tutte le righe "0" visibili, fare clic con il tasto destro del mouse e scegliere Elimina riga dal menu contestuale.
- Rimuovere il filtro ed eliminare la colonna Helper.
In modo analogo, è possibile eliminare ogni quarta, quinta o qualsiasi altra nesima riga in Excel.
Suggerimento: nel caso in cui sia necessario rimuovere le righe con dati irrilevanti, sarà utile la seguente guida: Come eliminare le righe in base al valore della cella.
Vi ringrazio per la lettura e spero di rivedervi sul nostro blog la prossima settimana.