I cookie ci aiutano i nostri servizi. Utilizzando i nostri servizi, l'utente accetta di utilizzare i cookie.
Suggerimento: le altre lingue sono tradotte da Google. Puoi visitare il English versione di questo link.
Log In
x
or
x
x
Registrati
x

or

Come dividere i dati in più fogli di lavoro basati sulla colonna in Excel?

Supponendo di avere un foglio di lavoro con enormi file di dati e ora è necessario dividere i dati in più fogli di lavoro basati sul Nome colonna (vedi schermata successiva), e i nomi sono inseriti in modo casuale. Forse puoi prima ordinarli e poi copiarli e incollarli uno ad 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 suddivide i dati per colonne 1

Suddividi i dati in più fogli di lavoro basati su colonne con codice VBA

Suddividi i dati in più fogli di lavoro basati sulla colonna con Kutools per Excel


Suddividi i dati in più fogli di lavoro in base al conteggio di colonne o righe specifico nel foglio di lavoro:

Se si desidera dividere un foglio di lavoro di grandi dimensioni in più fogli in base a dati di colonna o conteggio di righe specifici, il file Kutools for Excel's Split Data funzionalità può aiutarti a risolvere questo compito in modo rapido e semplice.

doc suddivide i dati per colonne 6

Kutools for Excel: con più di 200 pratici componenti aggiuntivi di Excel, liberi di provare senza limitazioni nei giorni 60. Scarica e prova gratis ora!


Suddividi i dati in più fogli di lavoro basati su colonne con codice VBA


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

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

2. Clic inserire > Moduloe incollare il seguente codice nella finestra del modulo.

Sub Splitdatabycol()
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
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
Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = myarr(i) & ""
Else
Sheets(myarr(i) & "").Move after:=Worksheets(Worksheets.Count)
End If
xWSTRg.Range(title).Copy
Sheets(myarr(i) & "").Paste Destination:=Sheets(myarr(i) & "").Range("A1")
ws.Range("A" & (titlerow + xTRg.Rows.Count) & ":A" & lr).EntireRow.Copy Sheets(myarr(i) & "").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 prompt per ricordare all'utente selezionare la riga dell'intestazione, vedere screenshot:

doc suddivide i dati per colonne 7

4. E poi, clicca OK pulsante, e nella seconda casella di richiesta, selezionare i dati della colonna che si desidera dividere in base, vedi screenshot:

doc suddivide 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 separati sono denominati con i nomi delle celle divise. Vedi screenshot:

doc suddivide i dati per colonne 2

Note: I fogli di lavoro suddivisi sono collocati alla fine della cartella di lavoro in cui si trova il foglio di lavoro principale.


Suddividi i dati in più fogli di lavoro basati sulla colonna con Kutools per Excel

Come un principiante di Excel, questo lungo codice VBA è alquanto difficile per noi, e molti di noi non sanno nemmeno come modificare il codice in base alle 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 anche a dividere i dati per numero di righe.

Kutools for Excel : con più di 300 pratici componenti aggiuntivi di Excel, liberi di provare senza limiti nei giorni 60.

Se hai installato Kutools for Excel, si prega di fare come segue:

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

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

doc suddivide i dati per colonne 3

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

1). Selezionare Colonna specifica opzione nel Spalato basato su sezione e scegliere il valore della colonna su cui si desidera suddividere i dati in base all'elenco a discesa. (Se i tuoi dati hanno intestazioni e vuoi inserirle in ogni nuovo foglio di lavoro diviso, per favore controlla I miei dati hanno intestazioni opzione.)

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

3). Clicca il OK pulsante. Vedi screenshot:

doc suddivide i dati per colonne 4

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

doc suddivide i dati per colonne 5

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


Suddividi i dati in più fogli di lavoro basati sulla colonna con Kutools per Excel

Kutools for Excel include più di 300 utili strumenti di Excel. Libero di provare senza limiti nei giorni 60. Scarica la versione di prova gratuita ora!


Articolo correlato:

Come dividere i dati in più fogli di lavoro per numero di righe?



Strumenti di produttività consigliati

Office Tab

stella d&#39;oro1 Porta pratiche schede ad Excel e ad altri software Office, proprio come Chrome, Firefox e il nuovo Internet Explorer.

Kutools for Excel

stella d&#39;oro1 Stupefacente! Aumenta la tua produttività in 5 minuti. Non servono abilità speciali, risparmiate due ore al giorno!

stella d&#39;oro1 300 Nuove funzionalità per Excel, rendono Excel molto semplice e potente:

  • Unisci cella / righe / colonne senza perdere dati.
  • Combina e consolida più fogli e cartelle di lavoro.
  • Confronta intervalli, copia intervalli multipli, conversione testo in data, unità e conversione valuta.
  • Contare in base a colori, totali parziali cercapersone, ordinamento avanzato e filtro super,
  • Altro Seleziona / Inserisci / Elimina / Testo / Formato / Link / Commento / Cartelle di lavoro / Fogli di lavoro Strumenti ...

Schermata di Kutools per Excel

Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Niki · 5 years ago
    The VBA process worked perfectly, thank you so much for sharing your expertise and saving me a lot of time!
  • To post as a guest, your comment is unpublished.
    Cindy · 5 years ago
    I get an error when pressing F5 - GoTo Box asking for a reference??
  • To post as a guest, your comment is unpublished.
    Jagadesh.K · 5 years ago
    Split data into multiple worksheets based on column with VBA code shows some error. please try to rectify it & update the same. If you provide the sample excel files it will be really helpful.
    • To post as a guest, your comment is unpublished.
      Lok · 1 years ago
      Hallo,
      Thank you very much for the code.
      i am getting following error:

      Runtime error '6'
      overflow

      at the line
      For i = 2 To Ir

      Any solution for this.

      Thank you
    • To post as a guest, your comment is unpublished.
      Lok · 1 years ago
      I am getting following error:

      Runtime error '6'
      overflow

      After debugging show the line
      For i = 2 To Ir

      My excel rows are over 500,000.

      Is there any solution

      Thank you very much for the code.

      Best Regard
      Lok
    • To post as a guest, your comment is unpublished.
      Sarah · 1 years ago
      Hi,
      I've got 30000 cells in my worksheet and need to split them up in months. is there a code I can use to do it quicker. I have got 8 columns and date is column B.

      I've been playing around with the above code that is given but failing it big time.

      Could you please help me with this.

      Thanks in advance
    • To post as a guest, your comment is unpublished.
      Heidi · 2 years ago
      That was incredible! This process would have taken me over an hour to do, but it was done within 30 seconds. This one I will keep for my VBA library. Thank you!
    • To post as a guest, your comment is unpublished.
      Georges · 2 years ago
      Hi,
      thanks for the code it works for me!

      I am trying to find a code that split one master sheet into multiple sheet based on date