Note: The other languages of the website are Google-translated. Back to English

Come dividere i dati in più fogli di lavoro in base alla colonna in Excel?

Supponendo di avere un foglio di lavoro con enormi righe di dati e ora, è necessario dividere i dati in più fogli di lavoro in base al Nome colonna (vedi screenshot seguente), ei nomi vengono inseriti in modo casuale. Forse puoi prima ordinarli, quindi copiarli e incollarli uno per uno in altri nuovi fogli di lavoro. Ma questo richiederà la tua pazienza per copiare e incollare ripetutamente. Oggi parlerò di alcuni trucchi rapidi per risolvere questo compito.

doc dividere i dati per colonne 1

Suddividi i dati in più fogli di lavoro in base alla colonna con codice VBA

Dividi i dati in più fogli di lavoro in base alla colonna con Kutools per Excel


Suddividi i dati in più fogli di lavoro in base alla colonna con codice VBA

Se desideri dividere i dati in base al valore della colonna in modo rapido e automatico, il seguente codice VBA è una buona scelta. Per favore, fai come segue:

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

2. Clic inserire > Moduloe 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 chiave per eseguire il codice e viene visualizzata una finestra di messaggio per ricordarti di selezionare la riga di intestazione, vedi screenshot:

doc dividere i dati per colonne 7

4. Quindi fare clic su OK pulsante e nella seconda finestra di messaggio, selezionare i dati della colonna su cui si desidera suddividere in base, vedere screenshot:

doc dividere i dati per colonne 8

5. Quindi, fare clic OKe tutti i dati nel foglio di lavoro attivo vengono suddivisi in più fogli di lavoro in base al valore della colonna. E i fogli di lavoro divisi sono denominati con i nomi delle celle divise. Vedi screenshot:

doc dividere i dati per colonne 2

Note:: I fogli di lavoro divisi vengono posizionati alla fine della cartella di lavoro in cui si trova il foglio di lavoro principale.


Dividi i dati in più fogli di lavoro in base alla colonna con Kutools per Excel

Come principiante di Excel, questo lungo codice VBA è alquanto difficile per noi e la maggior parte di noi non sa nemmeno come modificare il codice secondo le nostre necessità. Qui ti presenterò uno strumento multifunzionale:Kutools for Excel, suo Split Data l'utilità non solo può aiutarti a dividere i dati in più fogli di lavoro in base alla colonna, ma può anche dividere i dati per numero di righe.

NOTA:Per applicare questo Split Data, in primo luogo, dovresti scaricare il file Kutools for Excele quindi applica la funzione in modo rapido e semplice.

Dopo l'installazione Kutools for Excel, per favore fai come questo:

1. Seleziona l'intervallo di dati che desideri dividere.

2. Clic Kutools Plus > Foglio di lavoro > Split Data, vedi screenshot:

doc dividere i dati per colonne 3

3. Nel Suddividi i dati in più fogli di lavoro finestra di dialogo, è necessario:

1). Selezionare Colonna specifica opzione nel Dividi in base a sezione e scegli il valore della colonna su cui desideri suddividere i dati in base nell'elenco a discesa. (Se i tuoi dati hanno intestazioni e desideri inserirli in ogni nuovo foglio di lavoro diviso, controlla I miei dati hanno intestazioni opzione.)

2). Quindi puoi specificare i nomi dei fogli di lavoro divisi, sotto il file Nuovo nome dei fogli di lavoro sezione, specificare le regole dei nomi dei fogli di lavoro dal file Regole elenco a discesa, è possibile aggiungere il file Prefisso or Suffisso anche per i nomi dei fogli.

3). Clicca il OK pulsante. Vedi screenshot:

doc dividere i dati per colonne 4

4. Ora i dati vengono suddivisi in più fogli di lavoro in una nuova cartella di lavoro.

doc dividere i dati per colonne 5

Fai clic per scaricare Kutools per Excel e prova gratuita ora!


Dividi i dati in più fogli di lavoro in base alla colonna con Kutools per Excel

Kutools for Excel include più di 300 utili strumenti Excel. Prova gratuita senza limitazioni per 30 giorni. Scarica subito la versione di prova gratuita!


Articolo correlato:

Come dividere i dati in più fogli di lavoro in base al conteggio delle righe?


I migliori strumenti per la produttività in ufficio

Kutools per Excel risolve la maggior parte dei tuoi problemi e aumenta la tua produttività dell'80%

  • Riutilizzo: Inserisci rapidamente formule complesse, grafici e tutto ciò che hai usato prima; Crittografa celle con password; Crea mailing list e invia email ...
  • Bar Super Formula (modifica facilmente più righe di testo e formula); Layout di lettura (leggi e modifica facilmente un gran numero di celle); Incolla su intervallo filtrato...
  • Unisci celle / righe / colonne senza perdere dati; Contenuto delle celle divise; Combina righe / colonne duplicate... Impedisci celle duplicate; Confronta intervalli...
  • Seleziona Duplica o Unico Righe; Seleziona Righe vuote (tutte le celle sono vuote); Super Find e Fuzzy Find in molte cartelle di lavoro; Selezione casuale ...
  • Copia esatta Più celle senza modificare il riferimento della formula; Riferimenti di creazione automatica a più fogli; Inserisci punti elenco, Caselle di controllo e altro ...
  • Estrai testo, Aggiungi testo, Rimuovi per posizione, Rimuovi spazio; Creare e stampare totali parziali di paging; Converti contenuto e commenti tra celle...
  • Super filtro (salva e applica schemi di filtri ad altri fogli); Ordinamento avanzato per mese / settimana / giorno, frequenza e altro; Filtro speciale in grassetto, corsivo ...
  • Combina cartelle di lavoro e fogli di lavoro; Unisci tabelle in base a colonne chiave; Suddividi i dati in più fogli; Conversione in batch xls, xlsx e PDF...
  • Più di 300 potenti funzionalità. Supporta Office/Excel 2007-2021 e 365. Supporta tutte le lingue. Facile implementazione nella tua azienda o organizzazione. Funzionalità complete Prova gratuita di 30 giorni. Garanzia di rimborso di 60 giorni.
scheda kte 201905

Scheda Office porta l'interfaccia a schede a Office e semplifica notevolmente il 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!
fondo officetab
Commenti (299)
Ancora nessuna valutazione. Puoi essere il primo a votare!
Questo commento è stato fatto dal moderatore sul sito
La suddivisione dei dati in più fogli di lavoro in base alla colonna con il codice VBA mostra alcuni errori. si prega di provare a rettificarlo e aggiornare lo stesso. Se fornisci i file excel di esempio, sarà davvero utile.
Questo commento è stato fatto dal moderatore sul sito
Ciao, grazie per il codice che funziona per me! Sto cercando di trovare un codice che divida un foglio principale in più fogli in base alla data
Questo commento è stato fatto dal moderatore sul sito
È stato incredibile! Questo processo mi avrebbe richiesto più di un'ora, ma è stato eseguito in 30 secondi. Questo lo terrò per la mia libreria VBA. Grazie!
Questo commento è stato fatto dal moderatore sul sito
Ciao, ho 30000 celle nel mio foglio di lavoro e devo dividerle in mesi. c'è un codice che posso usare per farlo più velocemente. Ho 8 colonne e la data è la colonna B. Ho giocato con il codice sopra fornito ma non ci sono riuscito alla grande. Potresti per favore aiutarmi con questo. Grazie in anticipo
Questo commento è stato fatto dal moderatore sul sito
Ricevo il seguente errore: Errore di runtime '6' overflow Dopo il debug mostra la riga For i = 2 To Ir Le mie righe excel sono oltre 500,000. C'è qualche soluzione Grazie mille per il codice. I migliori saluti Lok
Questo commento è stato fatto dal moderatore sul sito
Ciao, grazie mille per il codice. ricevo il seguente errore: Errore di runtime '6' overflow sulla riga For i = 2 To Ir Qualsiasi soluzione per questo. Grazie
Questo commento è stato fatto dal moderatore sul sito
Viene visualizzato un errore quando si preme F5 - GoTo Box chiedendo un riferimento?
Questo commento è stato fatto dal moderatore sul sito
Il processo VBA ha funzionato perfettamente, grazie mille per aver condiviso la tua esperienza e avermi fatto risparmiare un sacco di tempo!
Questo commento è stato fatto dal moderatore sul sito
Il codice VBA ha funzionato perfettamente. Non sembra aggiornare i fogli poiché vengono apportate modifiche a Sheet1. Si prega di aiutare.
Questo commento è stato fatto dal moderatore sul sito
Ciao, grazie per il codice che funziona per me! Ho solo due domande/osservazioni. 1 i dati copiati non includono il layout del file originale. Sarebbe possibile copiare i dati come tabella con filtro automatico? 2 i dati copiati non sembrano essere limitati all'intervallo del titolo. È possibile modificare il codice per un intervallo o un nome di tabella specifico? Questi aggiustamenti sarebbero molto utili. Saluti, Pieter
Questo commento è stato fatto dal moderatore sul sito
Funziona come un incantesimo! Grazie.
Questo commento è stato fatto dal moderatore sul sito
Funziona come un incantesimo... Grazie per il codice premium... :lol:
Questo commento è stato fatto dal moderatore sul sito
Grazie mille, ha funzionato alla grande. Tuttavia, cosa succede se voglio che i dati all'interno di ciascuna scheda vengano nuovamente ordinati (usando un'altra colonna)? Fondamentalmente, questo VBA lo suddivide in schede ma potrei volerlo suddividere ulteriormente ... è possibile?
Questo commento è stato fatto dal moderatore sul sito
Ciao Jonathan, Vecchio commento lo so, ma potrebbe essere utile per altri in futuro: avevo bisogno di farlo ma non riuscivo a trovare un modo semplice con VBA. Tuttavia, ho scoperto che se crei una nuova colonna nel tuo foglio di calcolo come una fusione dei 2, quindi ad esempio =A1&" "&A2 Questo ti dà 1 cella con entrambi i set di informazioni. È quindi possibile eseguire il modulo sopra e funziona bene! Modifica - I dati nelle colonne devono essere inferiori a 30 caratteri, altrimenti i dati non vengono copiati (viene visualizzato come un errore sul modulo) e ottieni un foglio bianco nel mezzo dei tuoi nuovi fogli.
Questo commento è stato fatto dal moderatore sul sito
Fantastico.. È stato fantastico. Ho lottato con questo problema per così tanto tempo e questo codice è arrivato come tregua. Grazie per averlo condiviso.
Questo commento è stato fatto dal moderatore sul sito
Sorprendente. Grazie per la pubblicazione.
Questo commento è stato fatto dal moderatore sul sito
Il codice ha funzionato come un incantesimo per dati più piccoli (meno di 1200 righe). Ho provato a utilizzare il foglio di lavoro più grande con (17000 righe) e si è bloccato dopo essere stato diviso in 10-12 fogli. Quindi abbiamo provato a dividere i dati originali in 3 diverse cartelle di lavoro e comunque a chiuderci. Abbiamo Windows 7 e nemmeno i nostri computer sono così lenti. Suggerisci righe limitate sui dati per utilizzare questo codice in modo sicuro? Qualsiasi suggerimento sarebbe apprezzato.
Questo commento è stato fatto dal moderatore sul sito
Il codice ha funzionato come un incantesimo per dati più piccoli (meno di 1200 righe). Ho provato a utilizzare il foglio di lavoro più grande con (17000 righe) e si è bloccato dopo essere stato diviso in 10-12 fogli. Quindi abbiamo provato a dividere i dati originali in 3 diverse cartelle di lavoro e comunque a chiuderci. Abbiamo Windows 7 e nemmeno i nostri computer sono così lenti. Suggerisci righe limitate sui dati per utilizzare questo codice in modo sicuro? Qualsiasi suggerimento sarebbe apprezzato. Quello che non sono sicuro è: qual è il numero massimo di righe che la macro può supportare? Potrei giocarci... È da qualche parte tra 20k e 40k![/quote]
Questo commento è stato fatto dal moderatore sul sito
Di fronte allo stesso problema. Il codice funziona per fogli in cui i dati sono meno righe, tuttavia per dati più grandi mostra l'errore "Excel non può completare questa attività con le risorse disponibili. Scegli meno dati o chiudi altre applicazioni" (non ci sono altre applicazioni che funzionano contemporaneamente) Il codice ha funzionato come un incantesimo per dati più piccoli (meno di 1200 righe). Ho provato a utilizzare il foglio di lavoro più grande con (17000 righe) e si è bloccato dopo essere stato diviso in 10-12 fogli. Quindi abbiamo provato a dividere i dati originali in 3 diverse cartelle di lavoro e comunque a chiuderci. Abbiamo Windows 7 e nemmeno i nostri computer sono così lenti. Suggerisci righe limitate sui dati per utilizzare questo codice in modo sicuro? Qualsiasi suggerimento sarebbe apprezzato.
Questo commento è stato fatto dal moderatore sul sito
Sei il mio eroe di tutti i tempi! Ho cercato questo per mesi senza fortuna. Devo fare questi rapporti settimanali/mensili in oltre 147 fogli di lavoro e non mi daranno kutools. Su quella nota.. Ho davvero bisogno di imparare a programmare. :( Ma grazie!
Questo commento è stato fatto dal moderatore sul sito
CIAO, ho un foglio con 65000 record e 8 casi diversi, quindi in pratica dovrebbe generare 80 fogli diversi. Ho provato a eseguire questo codice, ma genera un errore di runtime 6 Overflow. Questo codice può essere modificato per risolvere il mio problema? Per favore, il tuo aiuto sarà molto apprezzato.
Questo commento è stato fatto dal moderatore sul sito
[quote]CIAO, ho un foglio con 65000 record e 8 casi diversi, quindi in pratica dovrebbe generare 80 fogli diversi. Ho provato a eseguire questo codice, ma genera un errore di runtime 6 Overflow. Questo codice può essere modificato per risolvere il mio problema? Per favore, il tuo aiuto sarà molto apprezzato.A cura di ACE[/quote] Prova a cambiare Dim vcol, i As Integer in Dim vcol, i As Long
Questo commento è stato fatto dal moderatore sul sito
Ciao, ho provato a cambiare DIM vcol in LOng e funzionava bene, ma all'improvviso a causa di un errore non c'è memoria sufficiente per completare questa azione, prova a utilizzare meno dati o a chiudere altre applicazioni. Anche se non ho altre applicazioni aperte. Sto avendo poco più di 100 k righe e ca. Dimensione file 16 MB. Qualsiasi aiuto sarebbe apprezzato. Grazie Mustafa
Questo commento è stato fatto dal moderatore sul sito
Fantastico pezzo di codice - funziona perfettamente (se modifichi le variabili in quella necessaria per il tuo foglio di calcolo)
Questo commento è stato fatto dal moderatore sul sito
Ho un foglio con un numero variabile di righe. Una delle colonne sono le date che vanno dal 2010 in poi. Le altre colonne sono i nomi dei fondi con i dati NAV per ciascun fondo rispetto alla data. Quindi non voglio dividere le colonne in fogli diversi, voglio dividere ogni NOME FONDO nel proprio foglio con i dati NAV per data di fine mese, non le date giornaliere. Si può fare o è impossibile?
Questo commento è stato fatto dal moderatore sul sito
Ho un foglio di lavoro che uso e sto cercando di trovare un codice vba che riconosca il nome di un account e copi la riga particolare in una nuova cartella di lavoro e foglio con lo stesso nome, puoi aiutarmi?
Questo commento è stato fatto dal moderatore sul sito
Grande! Il codice VBA funziona, grazie! Ho bisogno che questi fogli di lavoro di output si trovino in singoli file Excel anziché in fogli di lavoro e si verifica un errore quando divido in molti fogli di lavoro.
Questo commento è stato fatto dal moderatore sul sito
Starscor e Tim se vuoi dividere i fogli del file in più file usando i nomi delle righe c'è un piccolo codice macro in questa stessa pagina web che lo fa, cerca semplicemente "dividi una cartella di lavoro per separare i file Excel" tu lo troverà. Aggiungi il codice di quell'esempio alla fine di questo eliminando ovviamente il duplicato finale sub e sub e otterrai un file per ciascuno.
Questo commento è stato fatto dal moderatore sul sito
qualcuno può aiutarmi a ordinare le colonne in fogli diversi nella stessa cartella di lavoro alla volta e anche a rimuovere i duplicati in fogli diversi poiché ho circa 65 fogli nella stessa cartella di lavoro
Questo commento è stato fatto dal moderatore sul sito
questo è così eccitante! Grazie. Lo cercavo da tempo.
Questo commento è stato fatto dal moderatore sul sito
Eccellente - grazie per averlo condiviso. Propaga anche evidenziazioni/formato su nuovi fogli di lavoro!
Non ci sono ancora commenti pubblicati qui
Carica Altre
Lasciate i vostri commenti
Pubblicazione come ospite
×
Valuta questo post:
0   Personaggi
Posizioni suggerite

Seguici

Copyright © 2009 - www.extendoffice.com. | Tutti i diritti riservati. Offerto da ExtendOffice, | Mappa del sito
Microsoft e il logo Office sono marchi o marchi registrati di Microsoft Corporation negli Stati Uniti e / o in altri paesi.
Protetto da Sectigo SSL