Come duplicare righe in base al valore di una cella in una colonna?
Quando si lavora con tabelle dati di Excel, a volte potrebbe essere necessario duplicare intere righe in base a un valore in una colonna specifica. Ad esempio, immagina di avere una tabella in cui la colonna D indica un numero e il tuo obiettivo è copiare o inserire ogni riga tante volte quanto il valore della cella corrispondente nella colonna D. Questo può essere utile per espandere i dati, preparare set di dati per test, simulare inventari o generare righe d'ordine ripetute. Raggiungere questo obiettivo in modo efficiente senza ripetizioni manuali aiuta a mantenere l'integrità dei dati e velocizza notevolmente il flusso di lavoro, soprattutto per tabelle più grandi.
![]() | ![]() | ![]() |
Duplicare righe più volte in base ai valori delle celle con codice VBA
Duplicare righe tramite trasformazione Power Query
Duplicare righe più volte in base ai valori delle celle con codice VBA
Se hai bisogno di creare rapidamente copie di righe intere in base ai valori in una colonna specifica (ad esempio, nella colonna D), VBA offre una soluzione diretta ed efficiente. Questo approccio è particolarmente prezioso quando si gestiscono grandi set di dati, poiché automatizza il processo e aiuta a garantire precisione. Tuttavia, lavorare con VBA richiede una certa familiarità di base con la scheda Sviluppatore di Excel e una comprensione di come eseguire macro. Il principale vantaggio è la flessibilità: il codice può essere adattato per soddisfare diversi intervalli o colonne target. D'altra parte, se non ti senti a tuo agio con VBA o le politiche di sicurezza bloccano le macro nel tuo ambiente, prendi in considerazione una delle soluzioni alternative seguenti.
1. Tieni premuti i tasti ALT + F11 per aprire la finestra di Microsoft Visual Basic for Applications.
2. Clicca su Inserisci > Modulo, e incolla il seguente codice nella finestra del Modulo.
Codice VBA: Duplicare righe più volte in base al valore della cella:
Sub CopyData()
'Updateby Extendoffice
Dim xRow As Long
Dim VInSertNum As Variant
xRow = 1
Application.ScreenUpdating = False
Do While (Cells(xRow, "A") <> "")
VInSertNum = Cells(xRow, "D")
If ((VInSertNum > 1) And IsNumeric(VInSertNum)) Then
Range(Cells(xRow, "A"), Cells(xRow, "D")).Copy
Range(Cells(xRow + 1, "A"), Cells(xRow + VInSertNum - 1, "D")).Select
Selection.Insert Shift:=xlDown
xRow = xRow + VInSertNum - 1
End If
xRow = xRow + 1
Loop
Application.ScreenUpdating = False
End Sub
3. Quindi premi il tasto F5 per eseguire questo codice. Le righe intere verranno duplicate più volte in base al valore della cella nella colonna D, corrispondendo alle tue esigenze.
Copia e inserisci righe in base a un numero specificato di volte con uno strumento pratico - Kutools per Excel
Se preferisci un metodo senza utilizzare codice, o desideri un'interfaccia utente amichevole per gestire la duplicazione in batch, Kutools per Excel offre una soluzione pratica. La sua funzionalità Copia o Inserisci Righe/Colonne in Base ai Dati Specificati permette di copiare e inserire righe rapidamente in base al numero indicato nelle celle rilevanti. Questo è ideale per chi gestisce regolarmente tali operazioni ripetitive di righe e ha bisogno di un processo più visuale e personalizzabile. Durante la duplicazione, Kutools mantiene il layout e la formattazione della tabella originale, riducendo il rischio di errori accidentali. Questo metodo funziona perfettamente indipendentemente dalla tua esperienza con VBA e migliora significativamente l'efficienza per intervalli di dati medi o grandi.
- Clicca su Kutools > Inserisci > Copia o Inserisci Righe/Colonne in Base ai Dati Specificati per attivare questa funzionalità;
- Quindi, scegli l'opzione Copia e inserisci righe, e specifica separatamente le celle dell'Intervallo di inserimento e Numero di Ripetizioni nella finestra di dialogo. Conferma le tue scelte e clicca OK.
Duplicare righe tramite trasformazione Power Query
Power Query fornisce una soluzione robusta e ripetibile per duplicare righe in base al valore di una colonna—ideale per tabelle più grandi o quando è necessario aggiornare frequentemente i dati. Utilizzando questo strumento, puoi espandere le righe in base a indicatori numerici senza formule o codice. Questo metodo funziona bene per gli utenti che desiderano un processo visivamente spiegabile, passo dopo passo, e hanno bisogno di ripetibilità con aggiornamenti futuri dei dati.
1. Aggiungi i tuoi dati a una Tabella Excel (seleziona l'intervallo e premi Ctrl+T). Vai su Dati > Da Tabella/Intervallo per caricare la tua tabella in Power Query.
2. Nell'Editor di Power Query, seleziona la scheda Aggiungi Colonna e clicca su Colonna Personalizzata.
3. Digita la seguente formula per generare una lista per ogni riga in base al valore nella colonna D. ( Nota: Dovresti sostituire [D] con il nome effettivo della tua intestazione di colonna. Ad esempio, qui selezionerò i Tempi di Duplicazione e cliccherò sul pulsante Inserisci per sostituire l'argomento [D].)
List.Repeat({1}, [D])
4. Clicca sul pulsante Espandi accanto alla nuova colonna personalizzata e clicca su Espandi a Nuove Righe.
5. Quindi, puoi vedere che i dati sono stati duplicati in base ai valori nella colonna D, vedi screenshot:
6. Rimuovi le colonne di supporto se necessario, e clicca su Chiudi & Carica per riportare i dati in Excel.
I migliori strumenti per la produttività in Office
Migliora le tue competenze su Excel con Kutools per Excel e sperimenta un nuovo livello di efficienza. Kutools per Excel offre oltre300 funzionalità avanzate per aumentare la produttività e risparmiare tempo. Clicca qui per ottenere la funzione di cui hai più bisogno...
Office Tab porta l’interfaccia a schede su Office, rendendo il tuo lavoro molto più semplice
- Abilita la modifica a schede e la lettura in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Apri e crea più documenti in nuove schede della stessa finestra, invece che in nuove finestre.
- Aumenta la tua produttività del50% e ti fa risparmiare centinaia di clic ogni giorno!