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

Cum să împărțiți datele în mai multe foi de lucru pe baza coloanei din Excel?

Presupunând că aveți o foaie de lucru cu rânduri uriașe de date și acum trebuie să împărțiți datele în mai multe foi de lucru pe baza Nume si Prenume (vezi următoarea captură de ecran), iar numele sunt introduse aleatoriu. Poate le puteți sorta mai întâi, apoi le puteți copia și lipi unul câte unul în alte foi de lucru noi. Dar acest lucru va avea nevoie de răbdare pentru a copia și lipi în mod repetat. Astăzi, voi vorbi despre câteva trucuri rapide pentru a rezolva această sarcină.

doc împarte datele pe coloanele 1

Împărțiți datele în mai multe foi de lucru pe baza coloanei cu cod VBA

Împărțiți datele în mai multe foi de lucru pe baza coloanei cu Kutools pentru Excel


Împărțiți datele în mai multe foi de lucru pe baza coloanei cu cod VBA

Dacă doriți să împărțiți datele pe baza valorii coloanei rapid și automat, următorul cod VBA este o alegere bună. Vă rugăm să faceți acest lucru:

1. Țineți apăsat butonul ALT + F11 tastele pentru a deschide Microsoft Visual Basic pentru aplicații fereastră.

2. Clic Insera > Moduleși lipiți următorul cod în fereastra modulului.

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. Apoi, apăsați F5 tasta pentru a rula codul și se afișează o casetă de solicitare pentru a vă reaminti să selectați rândul antet, vedeți captura de ecran:

doc împarte datele pe coloanele 7

4. Apoi, faceți clic OK și, în a doua casetă de prompt, selectați datele coloanei pe care doriți să le împărțiți, vedeți captura de ecran:

doc împarte datele pe coloanele 8

5. Apoi apasa OKși toate datele din foaia de lucru activă sunt împărțite în mai multe foi de lucru după valoarea coloanei. Și foile de lucru împărțite sunt denumite cu numele de celule împărțite. Vedeți captura de ecran:

doc împarte datele pe coloanele 2

notițe: Foile de lucru împărțite sunt plasate la sfârșitul registrului de lucru în care se află foaia de lucru principală.


Împărțiți datele în mai multe foi de lucru pe baza coloanei cu Kutools pentru Excel

Ca un începător Excel, acest cod VBA lung este oarecum dificil pentru noi și majoritatea dintre noi nici măcar nu știu cum să modificăm codul ca nevoie. Aici, vă voi prezenta un instrument multifuncțional -Kutools pentru Excel, ict Împărțiți datele utilitarul nu numai că vă poate ajuta să împărțiți datele în mai multe foi de lucru pe baza coloanei, dar vă poate împărți și datele în funcție de numărul de rânduri.

Notă:Pentru a aplica acest lucru Împărțiți datele, în primul rând, ar trebui să descărcați fișierul Kutools pentru Excel, apoi aplicați caracteristica rapid și ușor.

După instalare Kutools pentru Excel, vă rugăm să faceți acest lucru:

1. Selectați intervalul de date pe care doriți să îl împărțiți.

2. Clic Kutools Plus > Fisa de lucru > Împărțiți datele, vezi captura de ecran:

doc împarte datele pe coloanele 3

3. În Împărțiți datele în mai multe foi de lucru casetă de dialog, trebuie să:

1). Selectați Coloană specifică opțiune în Split pe baza și alegeți valoarea coloanei pe care doriți să împărțiți datele pe baza listei derulante. (Dacă datele dvs. au anteturi și doriți să le inserați în fiecare nouă foaie de lucru divizată, verificați Datele mele au anteturi opțiune.)

2). Apoi puteți specifica numele foilor de lucru împărțite, sub Numele noilor foi de lucru secțiunea, specificați regulile de nume ale foii de lucru din Reguli lista derulantă, puteți adăuga fișierul Prefix or Sufix și pentru numele foilor.

3). Apasă pe OK buton. Vedeți captura de ecran:

doc împarte datele pe coloanele 4

4. Acum datele sunt împărțite în mai multe foi de lucru într-un nou registru de lucru.

doc împarte datele pe coloanele 5

Faceți clic pentru a descărca Kutools pentru Excel și încercare gratuită acum!


Împărțiți datele în mai multe foi de lucru pe baza coloanei cu Kutools pentru Excel

Kutools pentru Excel include mai mult de 300 de instrumente Excel la îndemână. Încercare gratuită fără limitări în 30 de zile. Descărcați proba gratuită acum!


Articol asociat:

Cum să împărțiți datele în mai multe foi de lucru pe rânduri?


Cele mai bune instrumente de productivitate Office

Kutools pentru Excel vă rezolvă majoritatea problemelor și vă crește productivitatea cu 80%

  • reutilizarea: Introduceți rapid formule complexe, diagrame și orice ai folosit anterior; Criptați celulele cu parola; Creați o listă de corespondență și trimiteți e-mailuri ...
  • Super Formula Bar (editați cu ușurință mai multe linii de text și formulă); Layout de citire (citiți și editați cu ușurință un număr mare de celule); Lipiți la interval filtrat...
  • Merge celule / rânduri / coloane fără a pierde date; Conținut de celule divizate; Combinați rânduri / coloane duplicate... Prevenirea celulelor duplicate; Comparați gamele...
  • Selectați Duplicat sau Unic Rânduri; Selectați Rânduri goale (toate celulele sunt goale); Super Find și Fuzzy Find în multe cărți de lucru; Selectare aleatorie ...
  • Copie exactă Mai multe celule fără modificarea referinței formulelor; Creați automat referințe la foi multiple; Introduceți gloanțe, Casete de selectare și multe altele ...
  • Extrageți textul, Adăugați text, eliminați după poziție, Eliminați spațiul; Creați și imprimați subtotaluri de paginare; Convertiți conținutul dintre celule și comentarii...
  • Super Filtru (salvați și aplicați scheme de filtrare altor foi); Sortare avansată după lună / săptămână / zi, frecvență și multe altele; Filtru special cu bold, italic ...
  • Combinați cărți de lucru și foi de lucru; Merge Tables pe baza coloanelor cheie; Împărțiți datele în mai multe foi; Conversia în loturi xls, xlsx și PDF...
  • Peste 300 de funcții puternice. Suportă Office / Excel 2007-2021 și 365. Acceptă toate limbile. Implementare ușoară în întreprinderea sau organizația dvs. Funcții complete Probă gratuită de 30 de zile. Garanție de returnare a banilor de 60 de zile.
fila kte 201905

Fila Office aduce interfața cu file în Office și vă face munca mult mai ușoară

  • Activați editarea și citirea cu file în Word, Excel, PowerPoint, Publisher, Access, Visio și Project.
  • Deschideți și creați mai multe documente în filele noi ale aceleiași ferestre, mai degrabă decât în ​​ferestrele noi.
  • Vă crește productivitatea cu 50% și reduce sute de clicuri de mouse pentru dvs. în fiecare zi!
fundul officetab
Comentarii (303)
Încă nu există evaluări. Fii primul care evaluează!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Împărțirea datelor în mai multe foi de lucru pe baza coloanei cu cod VBA arată o eroare. Vă rugăm să încercați să o corectați și să actualizați același lucru. Dacă furnizați exemple de fișiere Excel, va fi foarte util.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, mulțumesc pentru codul care funcționează pentru mine! Încerc să găsesc un cod care să împartă o foaie principală în mai multe foi în funcție de dată
Acest comentariu a fost redus la minimum de moderatorul de pe site
Asta a fost incredibil! Acest proces mi-ar fi luat peste o oră, dar a fost făcut în 30 de secunde. Pe acesta îl voi păstra pentru biblioteca mea VBA. Mulțumesc!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, am 30000 de celule în foaia de lucru și trebuie să le împart în luni de zile. Există un cod pe care să-l pot folosi pentru a o face mai repede. Am 8 coloane și data este coloana B. M-am jucat cu codul de mai sus care este dat, dar nu l-am reușit foarte mult. Ma puteti ajuta va rog cu asta. Mulțumesc anticipat
Acest comentariu a fost redus la minimum de moderatorul de pe site
Primesc următoarea eroare: Runtime error '6' overflow După depanare arătaţi linia Pentru i = 2 To Ir Rândurile mele Excel sunt peste 500,000. Există vreo soluție. Mulțumesc foarte mult pentru cod. Cu respect Lok
Acest comentariu a fost redus la minimum de moderatorul de pe site
Salut, Mulțumesc foarte mult pentru cod. Primesc următoarea eroare: Runtime error '6' overflow at line For i = 2 To Ir Orice soluție pentru aceasta. Mulțumesc
Acest comentariu a fost redus la minimum de moderatorul de pe site
Primesc o eroare când apăsați F5 - GoTo Box cere o referință?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Procesul VBA a funcționat perfect, vă mulțumesc foarte mult pentru că mi-ați împărtășit expertiza și mi-ați economisit mult timp!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Codul VBA a funcționat perfect. Nu pare să actualizeze foile pe măsură ce se fac modificări la Sheet1. Te rog asista.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, mulțumesc pentru codul care funcționează pentru mine! Am doar două întrebări/remarci. 1 datele copiate nu includ aspectul fișierului original. Ar fi posibil să copiați datele ca tabel cu filtru automat? 2 datele copiate nu par să fie limitate la intervalul de titlu. Este posibil să ajustați codul pentru un anumit interval sau nume de tabel? Aceste ajustări ar fi de mare ajutor. Cu respect, Pieter
Acest comentariu a fost redus la minimum de moderatorul de pe site
Funcționează ca un farmec! Mulțumesc.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Funcționează ca un farmec... Mulțumesc pentru codul premium... :lol:
Acest comentariu a fost redus la minimum de moderatorul de pe site
Mulțumesc mult, a funcționat excelent. Cu toate acestea, ce se întâmplă dacă vreau ca datele din fiecare filă să fie sortate din nou (folosind o altă coloană)? Practic, acest VBA îl împarte în file, dar s-ar putea să vreau să fie defalcat în continuare... este posibil?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună Jonathan, Comentariul vechi îl știu, dar ar putea fi util pentru alții în viitor: trebuia să fac asta, dar nu puteam găsi o modalitate ușoară cu VBA. Cu toate acestea, am descoperit că, dacă creați o nouă coloană în foaia de calcul ca o amalgamare a celor 2, de exemplu, =A1&" "&A2 Aceasta vă oferă 1 celulă cu ambele seturi de informații. Apoi puteți rula modulul de mai sus și funcționează bine! Editare - Datele din coloane trebuie să fie mai scurte de 30 de caractere, altfel datele nu sunt copiate peste tot (se arată ca o eroare pe modul) și veți primi o foaie goală în mijlocul noilor foi de calcul.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Minunat.. Asta a fost uimitor. M-am luptat cu această problemă atât de mult timp și acest cod a venit ca un răgaz. Mulțumesc pentru împărtășire.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Uimitor. Multumesc pentru postare.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Codul a funcționat ca un farmec pentru date mai mici (mai puțin de 1200 de rânduri). Am încercat să o folosesc pe foaia de lucru mai mare cu (17000 de rânduri) și s-a prăbușit după ce s-a împărțit în 10-12 foi. Așa că am încercat să împărțim datele originale în 3 registre diferite și tot ne-am închis. Avem Windows 7 și nici computerele noastre nu sunt atât de lente. Sugerați orice rânduri limitate de date pentru a utiliza acest cod în siguranță? Orice sugestie ar fi apreciată.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Codul a funcționat ca un farmec pentru date mai mici (mai puțin de 1200 de rânduri). Am încercat să o folosesc pe foaia de lucru mai mare cu (17000 de rânduri) și s-a prăbușit după ce s-a împărțit în 10-12 foi. Așa că am încercat să împărțim datele originale în 3 registre diferite și tot ne-am închis. Avem Windows 7 și nici computerele noastre nu sunt atât de lente. Sugerați orice rânduri limitate de date pentru a utiliza acest cod în siguranță? Orice sugestie ar fi apreciată. Ceea ce nu sunt sigur este: care este numărul maxim de rânduri pe care macrocomanda le poate accepta? M-aș putea juca cu el... Este undeva între 20k și 40k![/quote]
Acest comentariu a fost redus la minimum de moderatorul de pe site
Se confruntă cu aceeași problemă. Codul funcționează pentru foile în care datele sunt mai puține rânduri, totuși pentru date mai mari arată o eroare ca „Excel nu poate finaliza această sarcină cu resursele disponibile. Alegeți mai puține date sau închideți alte aplicații” (nu există nicio altă aplicație care funcționează în același timp) Codul a funcționat ca un farmec pentru date mai mici (mai puțin de 1200 de rânduri). Am încercat să o folosesc pe foaia de lucru mai mare cu (17000 de rânduri) și s-a prăbușit după ce s-a împărțit în 10-12 foi. Așa că am încercat să împărțim datele originale în 3 registre diferite și tot ne-am închis. Avem Windows 7 și nici computerele noastre nu sunt atât de lente. Sugerați orice rânduri limitate de date pentru a utiliza acest cod în siguranță? Orice sugestie ar fi apreciată.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Ești eroul meu din toate timpurile! Am vânat asta de luni de zile fără noroc. Trebuie să fac aceste rapoarte săptămânale/lunare în peste 147 de foi de lucru și nu-mi vor primi kutools. În această notă.. Chiar trebuie să învăț codificare. :( Dar mulțumesc!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, am o foaie care are 65000 de înregistrări și care are 8 cazuri diferite, deci practic ar trebui să genereze 80 de foi diferite. Am încercat să rulez acest cod, dar afișează Runtime Error 6 Overflow. Acest cod poate fi modificat pentru a-mi rezolva problema? Vă rog, ajutorul vostru va fi foarte apreciat.
Acest comentariu a fost redus la minimum de moderatorul de pe site
[citare]Bună ziua, am o foaie cu 65000 de înregistrări și cu 8 cazuri diferite, așa că, practic, ar trebui să genereze 80 de foi diferite. Am încercat să rulez acest cod, dar afișează Runtime Error 6 Overflow. Acest cod poate fi modificat pentru a-mi rezolva problema? Vă rog, ajutorul vostru va fi foarte apreciat.De către ACE[/quote] Încercați să schimbați Dim vcol, i As Integer în Dim vcol, i As Long
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună, am încercat să schimb DIM vcol în LOng și a funcționat bine, dar dintr-o dată, printr-o eroare, nu există suficientă memorie pentru a finaliza această acțiune, încercați să utilizați mai puține date sau să închideți alte aplicații. Deși nu am alte aplicații deschise. Am puțin mai mult de 100 k rânduri și aprox. Dimensiunea fișierului de 16 mb. orice ajutor ar fi apreciat. Mulțumesc Mustafa
Acest comentariu a fost redus la minimum de moderatorul de pe site
Un fragment minunat de cod - funcționează perfect (dacă modificați variabilele cu cea de care are nevoie foaia de calcul)
Acest comentariu a fost redus la minimum de moderatorul de pe site
Am o foaie cu un număr variabil de rânduri. Una dintre coloane este datele începând cu 2010. Celelalte coloane sunt nume de fonduri cu datele VAN pentru fiecare fond față de dată. Așa că nu vreau să împart coloanele în foi diferite, vreau să împart fiecare NUME DE FOND în propria foaie cu datele VNA pe data de sfârșit de lună, nu datele zilnice. Se poate face acest lucru sau este imposibil?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Am o foaie de lucru pe care o folosesc și încerc să găsesc un cod vba care să reconizeze un nume de cont și să copieze rândul particular într-un nou registru de lucru și foaie cu același nume, mă poți ajuta?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Grozav! Codul VBA funcționează, mulțumesc! Am nevoie ca aceste foi de lucru de ieșire să fie în fișiere Excel individuale în loc de foi de lucru și există o eroare când am împărțit în multe foi de lucru.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Starscor și Tim, dacă doriți să împărțiți foile fișierului în mai multe fișiere folosind numele rândurilor, există un mic cod macro în aceeași pagină web care o face, trebuie doar să căutați „împărțiți un registru de lucru pentru a separa fișierele Excel”. o va găsi. Adăugați codul acelui exemplu la sfârșitul acestuia, ștergând, desigur, sub și sub duplicat și veți obține câte un fișier pentru fiecare.
Acest comentariu a fost redus la minimum de moderatorul de pe site
poate cineva să mă ajute cum să sortez coloanele în diferite foi în același registru de lucru simultan și, de asemenea, să elimin duplicatele din foi diferite, deoarece am aproximativ 65 de foi în același registru de lucru
Acest comentariu a fost redus la minimum de moderatorul de pe site
asta este atât de interesant! Mulțumesc. Caut asta de ceva vreme.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Excelent - vă mulțumesc că ați împărtășit asta. Chiar și evidențiază/formatul în foi de lucru noi!
Nu există comentarii postate aici încă
Încărcați mai
Lăsa comentarii
Postare ca invitat
×
Evaluează această postare:
0   Caractere
Locații sugerate

Urmărește-ne

Copyright © 2009 - www.extendoffice.com. | Toate drepturile rezervate. Cu sprijinul ExtendOffice. | Harta site-ului
Microsoft și sigla Office sunt mărci comerciale sau mărci comerciale înregistrate ale Microsoft Corporation în Statele Unite și / sau în alte țări.
Protejat de Sectigo SSL