KutoolsforOffice — Un'unica soluzione, cinque potenti strumenti.Ottenere di più con meno sforzo.

Suggerimenti Excel: Suddividi dati in più schede / cartelle di lavoro in base al valore di una colonna

AutoreXiaoyang Data di modifica

Quando si gestiscono grandi set di dati in Excel, suddividere i dati in più schede in base ai valori di una colonna specifica può rivelarsi estremamente utile. Questo approccio non solo migliora l’organizzazione dei dati, ma ne aumenta anche la leggibilità e semplifica l’analisi.

Immagina di avere un ampio registro delle vendite con diverse voci, tra cui il nome del prodotto e la quantità venduta nel primo trimestre. L’obiettivo è suddividere questi dati in fogli di lavoro distinti per ogni nome di prodotto, così da poter analizzare separatamente le performance di vendita di ciascun articolo.

Suddividi dati in più schede in base al valore di una colonna

Suddividi dati in più cartelle di lavoro in base al valore di una colonna con codice VBA

Dividi i dati in più fogli di lavoro in base al valore della colonna


Suddividi dati in più schede in base al valore di una colonna

Di solito puoi ordinare l’elenco dei dati e poi copiarli e incollarli uno alla volta in un nuovo foglio di lavoro. Tuttavia, questo approccio richiede molta pazienza e comporta numerose operazioni ripetitive di copia e incolla. In questa sezione ti presenteremo due metodi semplici ed efficienti per portare a termine questa attività in Excel, risparmiando tempo e riducendo il rischio di errori.

Suddividi dati in più schede in base al valore di una colonna con codice VBA

1. Tieni premuti i tasti ALT + F11 per aprire la finestra di Microsoft Visual Basic, Applications Edition.

2. Fai clic su Inserisci > Modulo e incolla il codice seguente nella finestra del modulo.

Sub Splitdatabycol()
'updateby Extendoffice
Dim lr As Long
Dim ws As Worksheet
Dim vcol, i As Integer
Dim icol As Long
Dim myarr As Variant
Dim title As String
Dim titlerow As Integer
Dim xTRg As Range
Dim xVRg As Range
Dim xWSTRg As Worksheet
Dim xWS As Worksheet
On Error Resume Next
Set xTRg = Application.InputBox("Please select the header rows:", "Kutools for Excel", "", Type:=8)
If TypeName(xTRg) = "Nothing" Then Exit Sub
Set xVRg = Application.InputBox("Please select the column you want to split data based on:", "Kutools for Excel", "", Type:=8)
If TypeName(xVRg) = "Nothing" Then Exit Sub
vcol = xVRg.Column
Set ws = xTRg.Worksheet
lr = ws.Cells(ws.Rows.Count, vcol).End(xlUp).Row
title = xTRg.AddressLocal
titlerow = xTRg.Cells(1).Row
icol = ws.Columns.Count
ws.Cells(1, icol) = "Unique"
Application.DisplayAlerts = False
If Not Evaluate("=ISREF('xTRgWs_Sheet!A1')") Then
Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = "xTRgWs_Sheet"
Else
Sheets("xTRgWs_Sheet").Delete
Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = "xTRgWs_Sheet"
End If
Set xWSTRg = Sheets("xTRgWs_Sheet")
xTRg.Copy
xWSTRg.Paste Destination:=xWSTRg.Range("A1")
ws.Activate
For i = (titlerow + xTRg.Rows.Count) To lr
On Error Resume Next
If ws.Cells(i, vcol) <> "" And Application.WorksheetFunction.Match(ws.Cells(i, vcol), ws.Columns(icol), 0) = 0 Then
ws.Cells(ws.Rows.Count, icol).End(xlUp).Offset(1) = ws.Cells(i, vcol)
End If
Next
myarr = Application.WorksheetFunction.Transpose(ws.Columns(icol).SpecialCells(xlCellTypeConstants))
ws.Columns(icol).Clear
For i = 2 To UBound(myarr)
ws.Range(title).AutoFilter field:=vcol, Criteria1:=myarr(i) & ""
If Not Evaluate("=ISREF('" & myarr(i) & "'!A1)") Then
Set xWS = Sheets.Add(after:=Worksheets(Worksheets.Count))
xWS.Name = myarr(i) & ""
Else
xWS.Move after:=Worksheets(Worksheets.Count)
End If
xWSTRg.Range(title).Copy
xWS.Paste Destination:=xWS.Range("A1")
ws.Range("A" & (titlerow + xTRg.Rows.Count) & ":A" & lr).EntireRow.Copy xWS.Range("A" & (titlerow + xTRg.Rows.Count))
Sheets(myarr(i) & "").Columns.AutoFit
Next
xWSTRg.Delete
ws.AutoFilterMode = False
ws.Activate
Application.DisplayAlerts = True
End Sub

3. Premi quindi il tasto F5 per eseguire il codice. Si aprirà una finestra di dialogo che ti chiederà di selezionare la riga di intestazione; fai clic su OK. Vedi screenshot:
dividi i dati in fogli di lavoro con codice VBA per selezionare la riga di intestazione

4. Nella seconda finestra di dialogo, seleziona i dati della colonna in base ai quali desideri effettuare la suddivisione, quindi fai clic su OK. Vedi screenshot:
dividi i dati in fogli di lavoro con codice VBA per selezionare l'intervallo di dati

5. Tutti i dati del foglio attivo vengono suddivisi in più fogli di lavoro in base ai valori della colonna selezionata. I nuovi fogli prendono il nome dai valori presenti nelle celle di divisione e vengono posizionati alla fine della cartella di lavoro. Vedi screenshot:
dividi i dati in fogli di lavoro con codice VBA per ottenere il risultato

 

Suddividi dati in più schede in base al valore di una colonna con Kutools per Excel

Kutools per Excel offre una funzionalità intelligente: Suddividi dati, direttamente nel tuo ambiente Excel. Suddividere i dati in più fogli di lavoro non è più un problema! Il nostro strumento intuitivo suddivide automaticamente il tuo set di dati in base al valore scelto di una colonna o al numero di righe, garantendo che ogni informazione si trovi esattamente dove ti serve. Dì addio al noioso compito di organizzare manualmente i tuoi fogli di calcolo e adotta un metodo più rapido ed esente da errori per gestire i tuoi dati.

Nota:Per utilizzare questa funzionalità Suddividi dati, devi innanzitutto scaricare Kutools per Excele quindi applicarla rapidamente e facilmente.

Dopo aver installato Kutools per Excel, seleziona l’intervallo dati e fai clic su KUTOOLS PLUS > Suddividi dati per aprire la finestra di dialogo Suddividi dati in più schede.

  1. Seleziona l’opzione Specifica colonna nella sezione Base di suddivisione e scegli, dal menu a discesa, il valore della colonna in base al quale desideri suddividere i dati.
  2. Se i tuoi dati includono intestazioni e desideri inserirle in ogni nuovo foglio creato, seleziona l’opzione Includi titoli (puoi specificare il numero di righe di intestazione in base ai tuoi dati; ad esempio, se i dati contengono due righe di intestazione, digita 2).
  3. Puoi quindi specificare le regole di suddivisione per il nome del foglio di lavoro: nella sezione Nome delle schede create, seleziona la regola «Nome del foglio di lavoro» dall’elenco a discesa «Regole» e aggiungi anche un Prefisso o un Suffisso ai nomi dei fogli.
  4. Fai clic sul pulsante OK. Guarda lo screenshot:
    dividi i dati in fogli di lavoro con Kutools per impostare le operazioni

Ora i dati del foglio di lavoro sono stati suddivisi in più fogli all’interno di una nuova cartella di lavoro.
dividi i dati in fogli di lavoro con Kutools per ottenere il risultato


Suddividi dati in più cartelle di lavoro in base al valore di una colonna con codice VBA

A volte, anziché suddividere i dati in più fogli di lavoro, può risultare più efficace separarli in cartelle di lavoro distinte in base a una colonna chiave. Di seguito trovi una guida passo-passo per utilizzare il codice VBA e automatizzare la suddivisione dei dati in più cartelle di lavoro, in base ai valori di una colonna specifica.

1. Tieni premuto il tasto ALT + F11 per aprire la finestra di Microsoft Visual Basic, Applications Edition.

2. Fai clic su Inserisci > Modulo e incolla il codice seguente nella finestra del modulo.

Sub SplitDataByColToWorkbooks()
    ' Updateby Extendoffice
    Dim lr As Long
    Dim ws As Worksheet
    Dim vcol, i As Integer
    Dim myarr As Variant
    Dim title As String
    Dim titlerow As Integer
    Dim xTRg As Range
    Dim xVRg As Range
    Dim xWS As Workbook
    Dim savePath As String
    ' Set the directory to save new workbooks
    savePath = "C:\Users\AddinsVM001\Desktop\multiple files\" ' Modify this path as needed
    Application.DisplayAlerts = False
    Set xTRg = Application.InputBox("Please select the header rows:", "Kutools for Excel", Type:=8)
    If TypeName(xTRg) = "Nothing" Then Exit Sub
    Set xVRg = Application.InputBox("Please select the column you want to split data based on:", "Kutools for Excel", Type:=8)
    If TypeName(xVRg) = "Nothing" Then Exit Sub
    vcol = xVRg.Column
    Set ws = xTRg.Worksheet
    lr = ws.Cells(ws.Rows.Count, vcol).End(xlUp).Row
    title = xTRg.Address(False, False)
    titlerow = xTRg.Row
    ws.Columns(vcol).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=ws.Cells(1, ws.Columns.Count), Unique:=True
    myarr = Application.Transpose(ws.Cells(1, ws.Columns.Count).Resize(ws.Cells(ws.Rows.Count, ws.Columns.Count).End(xlUp).Row).Value)
    ws.Cells(1, ws.Columns.Count).Resize(ws.Cells(ws.Rows.Count, ws.Columns.Count).End(xlUp).Row).ClearContents
    For i = 2 To UBound(myarr)
        Set xWS = Workbooks.Add
        ws.Range(title).AutoFilter Field:=vcol, Criteria1:=myarr(i)
        ws.Range("A" & titlerow & ":A" & lr).SpecialCells(xlCellTypeVisible).EntireRow.Copy
        xWS.Sheets(1).Cells(1, 1).PasteSpecial Paste:=xlPasteAll
        xWS.SaveAs Filename:=savePath & myarr(i) & ".xlsx"

        xWS.Close SaveChanges:=False
    Next i
    ws.AutoFilterMode = False
    Application.DisplayAlerts = True
    ws.Activate
End Sub
Nota: Nel codice sopra indicato, devi modificare il Percorso file con il percorso in cui desideri salvare le Dividi documento nello script seguente:savePath = «C:\Users\AddinsVM001\Desktop\multiple files\».

3. Premi quindi il tasto F5 per eseguire il codice. Si aprirà una finestra di dialogo che ti chiederà di selezionare la riga di intestazione; fai clic su OK. Vedi screenshot:
dividi i dati in cartelle di lavoro con codice VBA per selezionare la riga di intestazione

4. Nella seconda finestra di dialogo, seleziona i dati della colonna in base ai quali desideri effettuare la suddivisione, quindi fai clic su OK. Vedi screenshot:
dividi i dati in cartelle di lavoro con codice VBA per selezionare l'intervallo di dati

5. Al termine della suddivisione, tutti i dati presenti nel foglio attivo vengono distribuiti in più cartelle di lavoro in base ai valori della colonna selezionata. Tutti i documenti generati vengono salvati nella cartella specificata. Vedi screenshot:
dividi i dati in cartelle di lavoro con codice VBA per ottenere il risultato

Articoli correlati:

  • Suddividi dati in più schede per numero di righe
  • Dividere in modo efficiente un ampio intervallo di dati in più fogli di lavoro Excel in base a un numero specifico di righe può semplificare notevolmente la gestione dei dati. Ad esempio, suddividere un set di dati ogni 5 righe in fogli separati lo rende più gestibile e organizzato. Questa guida presenta due metodi pratici per completare l’operazione in modo rapido e semplice.
  • Unire due o più tabelle in una sola in base a Colonna chiave
  • Supponiamo che tu abbia tre tabelle in una cartella di lavoro e ora desideri unirle in un’unica tabella in base alla corrispondente Colonna chiave per ottenere il risultato mostrato nell’immagine seguente. Questo potrebbe essere un compito difficoltoso per molti di noi, ma non preoccuparti: in questo articolo ti presenterò alcuni metodi per risolvere questo problema.
  • Dividere stringhe di testo tramite delimitatore in più righe
  • Normalmente puoi utilizzare la funzione Testo in colonne per suddividere il contenuto delle celle in più colonne usando un delimitatore specifico, come virgola, punto, punto e virgola, barra obliqua, ecc. Tuttavia, a volte potresti aver bisogno di dividere il contenuto delle celle delimitato in più righe e ripetere i dati delle altre colonne, come mostrato nell’immagine seguente. Conosci metodi efficaci per svolgere questo compito in Excel? Questo tutorial illustra alcuni metodi efficaci per completare questa operazione in Excel.

Migliori Strumenti per la Produttività in Office

🤖KUTOOLS AI Assistente: Rivoluziona Analisi dei dati in base a:Esecuzione Intelligente   |  Genera Codice|  Crea formule personalizzate  |  Analizza Dati e Genera Grafici|  Richiama Funzioni avanzate
Funzionalità Popolari:Trova, Evidenzia o Contrassegna Duplicati   |  Elimina righe vuote   |  Combinare Colonne o Celle senza Perdere Dati   |   Arrotondamento senza usare la formula...
Super RICERCA.VERT:VLookup con Criteri Multipli  |  VLookup con Valori Multipli  |   VLookup tra Fogli Multipli   |   Corrispondenza approssimativa....
Elenco a discesa avanzato:Crea Rapidamente un Elenco a Discesa   |  Elenco a Discesa Dipendente   |  Elenco a Discesa con Selezione Multipla....
Gestione Colonne:Aggiungi un Numero Specifico di Colonne|Sposta Colonne|Attiva/Disattiva lo Stato di Visibilità delle Colonne Nascoste|Confronta Intervalli e Colonne...
Funzionalità in Evidenza:Attenzione della griglia   |  Visualizzazione Design   |Barra delle formule avanzata   | Gestione Cartelle di Lavoro e Fogli   |  Biblioteca di risorse(Testo Automatico)|  Selettore di Date   |  Unisci fogli di lavoro  |  Crittografa/Decrittografa celle   | Invia Email da Lista   |  Super Filtri   |   Filtro speciale(Filtra celle con testo in grassetto/corsivo/barrato...) ...
Principali Set di Strumenti 15:12 Strumentiper il Testo(Aggiungi testo,Elimina Caratteri Specifici, ...)|   50+Tipidi Grafico(Diagramma di Gantt, ...)|   40+ Formule Pratiche(Calcola l'età in base alla data di nascita, ...)|   19 Strumentidi Inserimento(Inserisci Codice QR,Inserisci Immagine dal Percorso, ...)|   12 Strumentidi Conversione(Converti in parole,Conversione del tasso di cambio, ...)|   7 StrumentiUnisci e Dividi(Unione avanzata righe,Dividi celle, ...)|... e molto altro
Usa Kutools nella tua lingua preferita – supporta inglese, spagnolo, tedesco, francese, cinese e 40+ altre!

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.

ExcelWordOutlookTabsPowerPoint
  • 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