Come si fa a copiare una colonna in base al valore di una cella presente in un altro foglio?
Quando si lavora con dati distribuiti su colonne con intestazioni di data, capita spesso di dover estrarre un’intera colonna da un foglio di lavoro e copiarla in un altro, ma solo per quella colonna la cui intestazione corrisponde a una data specifica inserita altrove nella cartella. Ad esempio, immagini di avere una tabella nel Foglio1 in cui ogni intestazione di colonna è una data diversa e di inserire una data di riferimento in Foglio2!A1. Vorrebbe poter copiare automaticamente — o almeno in modo semplice — l’intera colonna dal Foglio1 la cui intestazione corrisponde alla data in Foglio2!A1 e incollarla nel Foglio3, come illustrato di seguito. Si tratta di un’operazione comune quando si confrontano metriche giornaliere, si gestiscono programmi o si estraggono dati legati a date specifiche per i report.
➤ Codice VBA – Copiare automaticamente una colonna in un altro foglio in base al valore di una cella
➤ Altri metodi integrati di Excel – Usare il filtro per isolare e copiare una colonna
Copiare una colonna in un altro foglio in base al valore di una cella con una formula
Le funzioni INDICE e CONFRONTA di Excel offrono un modo efficiente per recuperare un’intera colonna da un foglio sorgente in base a un valore specifico nell’intestazione, referenziato in un altro foglio. Questo metodo è particolarmente utile quando i dati devono aggiornarsi automaticamente al variare del valore della cella, eliminando la necessità di modifiche manuali o operazioni ripetitive di copia e incolla.
1. Seleziona la cella nel foglio di destinazione in cui desideri incollare i valori della colonna. Ad esempio, fai clic su Foglio3!A1. Quindi inserisci la seguente formula:
=INDEX(Sheet1!$A1:$E1,MATCH(Sheet2!$A$1,Sheet1!$A$1:$E$1,0))Premere Invioper applicare la formula, quindi trascinare il quadratino di riempimento verso il basso per tutta la lunghezza necessaria (di solito fino alle righe corrispondenti all’Intervallo dati in)Foglio1). Si noterà la possibile comparsa di zeri alla fine dell’Intervallo dati.
2. Elimini, se necessario, i filtri dalle celle con zero risultati per pulire la colonna estratta.

Codice VBA – Copiare automaticamente una colonna in un altro foglio in base al valore di una cella
Se esegue frequentemente questa operazione di estrazione delle colonne o preferisce una soluzione che non richieda l’impostazione di formule né interventi manuali ogni volta che la data di riferimento cambia, può utilizzare una semplice macro VBA. Questo script identificherà la colonna in Foglio1 la cui intestazione corrisponde alla data in Foglio2!A1 e copierà l’intera colonna direttamente in Foglio3. Questo metodo è ideale per automatizzare flussi di lavoro ripetitivi o gestire strutture dati dinamiche.
Avvertenze: Assicurati sempre di aver salvato il tuo lavoro prima di eseguire una macro. Le macro non possono essere annullate e, in caso di riferimenti errati, potrebbero copiare dati in posizioni impreviste.
1. Premere Alt + F11 per aprire l’editor di Visual Basic for Applications. Nella finestra VBA, fare clic su Inserisci > Modulo, quindi incollare il seguente codice nel modulo vuoto:
Sub CopyColumnByDate()
Dim wsSource As Worksheet
Dim wsDest As Worksheet
Dim lookupSheet As Worksheet
Dim matchDate As Variant
Dim lastRow As Long
Dim colNum As Long
Dim headerRange As Range
Dim cell As Range
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set wsSource = Worksheets("Sheet1")
Set wsDest = Worksheets("Sheet3")
Set lookupSheet = Worksheets("Sheet2")
matchDate = lookupSheet.Range("A1").Value
Set headerRange = wsSource.Range(wsSource.Cells(1, 1), wsSource.Cells(1, wsSource.Cells(1, wsSource.Columns.Count).End(xlToLeft).Column))
colNum = 0
For Each cell In headerRange
If cell.Value = matchDate Then
colNum = cell.Column
Exit For
End If
Next cell
If colNum > 0 Then
lastRow = wsSource.Cells(wsSource.Rows.Count, colNum).End(xlUp).Row
wsDest.Range("A1").Resize(lastRow, 1).Value = wsSource.Range(wsSource.Cells(1, colNum), wsSource.Cells(lastRow, colNum)).Value
MsgBox "Data copied to Sheet3 column A!", vbInformation, "KutoolsforExcel"
Else
MsgBox "No matching header found.", vbExclamation, "KutoolsforExcel"
End If
End Sub 2. Chiudere l’editor VBA. In Excel, premere Alt + F8, selezionare CopiaColonnaPerData, quindi fare clic su Esegui. I dati dalla colonna corrispondente alla data in Foglio1 verranno copiati nella colonna A di Foglio3.
Suggerimento: Se le sue intestazioni iniziano da una riga diversa dalla riga 1, modifichi i riferimenti di riga nel codice. Se desidera incollare i dati in una colonna iniziale diversa, aggiorni opportunamente Intervallo("A1"). Se utilizza spesso la stessa macro, consideri di assegnarla a un pulsante per un accesso ancora più rapido.
Errori possibili:Se riceve il messaggio «Nessuna intestazione corrispondente trovata», verifichi che la data in Foglio2!A1 corrisponda esattamente al formato data presente nella riga di intestazione di Foglio1.
Altri metodi integrati di Excel – Usare il filtro per isolare e copiare una colonna
La funzionalità integrata di Excel Filtro ti permette anche di isolare e copiare una colonna senza dover ricorrere a formule o macro. Questo metodo manuale è perfetto per operazioni occasionali o per chi non ha dimestichezza con funzioni e script.
1. Passa a Foglio1 e seleziona la riga di intestazione (ad esempio, la riga 1). Fai clic su Dati > Filtro per aggiungere un menu a tendina a ciascuna intestazione.
2. Fai clic sulla freccia del filtro nell'intestazione e deseleziona tutte le colonne tranne quella corrispondente alla data in Foglio2!A1. Se sono presenti molte date, puoi usare la casella di ricerca nel menu del filtro per individuare rapidamente il valore desiderato.
3. Seleziona la colonna visibile sotto l’intestazione corrispondente, quindi premi Ctrl + C per copiare.
4. Passa a Foglio3 e fai clic nella cella iniziale desiderata (ad esempio, A1), quindi premi Ctrl + V per incollare.
Nota: Il metodo con il filtro è completamente manuale e non si aggiorna automaticamente se la data in Foglio2!A1 cambia. Questo approccio è ideale per estrazioni dati occasionali e revisioni rapide, quando l’automazione non è necessaria.
Vantaggi: Non richiede formule né codifica; ideale per attività rapide e visive.
Svantaggi: Diventa dispendioso in termini di tempo se ripetuto frequentemente; soggetto a errori se non si presta attenzione durante la selezione delle colonne.

Sblocca la magia di Excel con KUTOOLS AI
- Esecuzione intelligente: Esegui operazioni sulle celle, analizza i dati e crea grafici, il tutto con comandi semplici e intuitivi.
- Formule personalizzate: crea formule su misura per ottimizzare i tuoi flussi di lavoro.
- Codifica VBA: Scrivi e implementa codice VBA in modo semplice e immediato.
- Interpretazione delle formule: Comprendi con facilità anche le formule più complesse.
- Traduzione del testo: Superate le barriere linguistiche direttamente nei vostri fogli di calcolo.
Migliori Strumenti per la Produttività in Office
Potenzia le tue competenze in Excel con Kutools per Excel e sperimenta un’efficienza mai vista prima.Kutools per Excel offre oltre 300 funzionalità avanzate per aumentare la produttività e Risparmia tempo.Clicca qui per ottenere la funzionalità di cui hai più bisogno...
Office Tab Porta l'interfaccia a schede in Office e rende il tuo lavoro molto più semplice
- Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Apri e crea più documenti in nuove schede all’interno della stessa finestra, invece che in finestre separate.
- Aumenta la tua produttività del 50 % e risparmia centinaia di clic del mouse ogni giorno!
Tutti i componenti aggiuntivi di Kutools in un unico programma di installazione.
Kutools for Office è la suite che include componenti aggiuntivi per Excel, Word, Outlook e PowerPoint, oltre a Office Tab Pro: la soluzione ideale per i team che lavorano su diverse app di Office.
- Suite completa— componenti aggiuntivi per Excel, Word, Outlook e PowerPoint + Office Tab Pro
- Un unico programma di installazione, una sola licenza— configurazione in pochi minuti (pronto per MSI)
- Funziona meglio insieme— produttività ottimizzata tra le app di Office
- Prova gratuita di 30 giorni con tutte le funzionalità— nessuna registrazione, nessuna carta di credito
- Miglior rapporto qualità-prezzo— risparmia rispetto all’acquisto dei singoli componenti aggiuntivi