Suggerimenti per Excel: suddividi i dati in più fogli di lavoro/cartelle di lavoro in base al valore della colonna
Quando si gestiscono set di dati di grandi dimensioni in Excel, può essere molto utile suddividere i dati in più fogli di lavoro in base a valori di colonna specifici. Questo metodo migliora non solo l'organizzazione dei dati, ma migliora anche la leggibilità e facilita l'analisi dei dati.
Supponiamo di avere un record di vendite di grandi dimensioni contenente più voci come il nome del prodotto e la quantità venduta nel primo trimestre. L'obiettivo è suddividere questi dati in fogli di lavoro separati in base al nome di ciascun prodotto in modo che le prestazioni di vendita individuali possano essere analizzate separatamente.
Suddividi i dati in più fogli di lavoro in base al valore della colonna
Suddividi i dati in più cartelle di lavoro in base al valore della colonna con codice VBA
Suddividi i dati in più fogli di lavoro in base al valore della colonna
Normalmente, è possibile prima ordinare l'elenco dei dati, quindi copiarli e incollarli uno per uno in altri nuovi fogli di lavoro. Ma questo richiederà la tua pazienza per copiare e incollare ripetutamente. In questa sezione, introdurremo due metodi semplici per affrontare in modo efficiente questa attività in Excel, risparmiando tempo e riducendo il rischio di errori.
Dividi i dati in più fogli di lavoro in base al valore della colonna con codice VBA
1. Tenere premuto il tasto ALT + F11 chiavi per aprire il Microsoft Visual Basic, Applications Edition finestra.
2. Clic inserire > Modulie 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. Quindi, premere F5 per eseguire il codice e viene visualizzata una finestra di messaggio per ricordarti di selezionare la riga di intestazione, quindi fare clic OK. Vedi screenshot:
4. Nella seconda finestra di messaggio, seleziona i dati della colonna su cui vuoi dividere in base, quindi fai clic OK. Vedi screenshot:
5. Tutti i dati nel foglio di lavoro attivo sono divisi in più fogli di lavoro in base ai valori delle colonne. I fogli di lavoro risultanti vengono denominati in base ai valori nelle celle divise e vengono posizionati alla fine della cartella di lavoro. Vedi schermata:
Dividi i dati in più fogli di lavoro in base al valore della colonna con Kutools per Excel
Kutools for Excel porta funzionalità intelligenti - Split Data direttamente nel tuo ambiente Excel. Suddividere i dati in più fogli di lavoro non è più una sfida. Il nostro strumento intuitivo divide automaticamente il tuo set di dati in base al valore della colonna scelto o al conteggio delle righe, assicurando che ogni informazione sia esattamente dove ti serve. Dì addio al noioso compito di organizzare manualmente i tuoi fogli di calcolo e adotta un modo più veloce e privo di errori per gestire i tuoi dati.
Dopo l'installazione Kutools for Excel, selezionare l'intervallo di dati e quindi fare clic su Kutools Plus > Split Data per aprire il Suddividi i dati in più fogli di lavoro la finestra di dialogo.
- Seleziona Colonna specifica opzione nel Dividi in base a sezione e scegli il valore della colonna in base alla quale desideri suddividere i dati dall'elenco a discesa.
- Se i tuoi dati hanno intestazioni e desideri inserirle in ogni nuovo foglio di lavoro diviso, controlla I miei dati hanno intestazioni opzione. (Puoi specificare il numero di righe di intestazione in base ai tuoi dati. Ad esempio, se i tuoi dati contengono due intestazioni, digita 2.)
- Quindi puoi specificare i nomi dei fogli di lavoro divisi, sotto il file Nuovo nome dei fogli di lavoro sezione, specifica la regola dei nomi dei fogli di lavoro dall'elenco a discesa Regole, puoi aggiungere il file Prefisso or Suffisso anche per i nomi dei fogli.
- Clicca su OK pulsante. Vedi screenshot:
Ora i dati nel foglio di lavoro sono suddivisi in più fogli di lavoro in una nuova cartella di lavoro.
Suddividi i dati in più cartelle di lavoro in base al valore della colonna con codice VBA
Talvolta, anziché dividere i dati in più fogli di lavoro, può essere più utile suddividere i dati in cartelle di lavoro separate in base a una colonna chiave. Ecco una guida passo passo su come utilizzare il codice VBA per automatizzare il processo di suddivisione dei dati in più cartelle di lavoro in base a un valore di colonna specifico.
1. Tenere premuto il tasto ALT + F11 chiavi per aprire il Microsoft Visual Basic, Applications Edition finestra.
2. Clic inserire > Modulie incolla il codice seguente nel file 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
3. Quindi, premere F5 per eseguire il codice e viene visualizzata una finestra di messaggio per ricordarti di selezionare la riga di intestazione, quindi fare clic OK. Vedi screenshot:
4. Nella seconda finestra di messaggio, seleziona i dati della colonna su cui vuoi dividere in base, quindi fai clic OK. Vedi screenshot:
5. Dopo la divisione, tutti i dati nel foglio di lavoro attivo vengono divisi in più cartelle di lavoro in base ai valori delle colonne. Tutte le cartelle di lavoro divise vengono salvate nella cartella specificata. Vedi schermata:
Articoli Correlati:
- Dividi i dati in più fogli di lavoro per numero di righe
- La divisione efficiente di un ampio intervallo di dati in più fogli di lavoro Excel in base a un conteggio di righe specifico può semplificare la gestione dei dati. Ad esempio, dividere un set di dati ogni 5 righe in più fogli può renderlo più gestibile e organizzato. Questa guida offre due metodi pratici per eseguire questa attività in modo rapido e semplice.
- Unisci due o più tabelle in una in base alle colonne chiave
- Supponendo che tu abbia tre tabelle in una cartella di lavoro, ora, vuoi unire queste tabelle in una tabella in base alle colonne chiave corrispondenti per ottenere il risultato come mostrato nell'immagine sottostante. Questo potrebbe essere un compito problematico per la maggior parte di noi, ma, per favore, non preoccuparti, in questo articolo introdurrò alcuni metodi per risolvere questo problema.
- Dividi le stringhe di testo per delimitatore in più righe
- Normalmente, puoi utilizzare la funzione Testo in colonna per dividere il contenuto della cella in più colonne in base a un delimitatore specifico, come virgola, punto, punto e virgola, barra, ecc. Ma, a volte, potresti dover dividere il contenuto della cella delimitato in più righe e ripetere i dati da altre colonne come mostrato nell'immagine sottostante. Hai qualche buon modo per gestire questa attività in Excel? Questo tutorial introdurrà alcuni metodi efficaci per completare questo lavoro in Excel.
- Dividi il contenuto delle celle multilinea in righe/colonne separate
- Supponendo di avere un contenuto di celle multilinea separato da Alt + Invio e ora è necessario dividere il contenuto multilinea in righe o colonne separate, cosa puoi fare? In questo articolo imparerai come dividere rapidamente il contenuto di celle multilinea in righe o colonne separate.
I migliori strumenti per la produttività in ufficio
Potenzia le tue competenze di Excel con Kutools per Excel e sperimenta l'efficienza come mai prima d'ora. Kutools per Excel offre oltre 300 funzionalità avanzate per aumentare la produttività e risparmiare tempo. Fai clic qui per ottenere la funzionalità di cui hai più bisogno...
Office Tab porta l'interfaccia a schede in Office e semplifica notevolmente il tuo lavoro
- 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 della stessa finestra, piuttosto che in nuove finestre.
- Aumenta la produttività del 50% e riduce ogni giorno centinaia di clic del mouse!