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

Hogyan oszthatja fel az adatokat több munkalapra az Excel oszlopai alapján?

Tételezzük fel, hogy van egy munkalap hatalmas adatsorokkal, és most az adatokat több munkalapra kell felosztani a Név oszlopot (lásd a következő képernyőképet), és a neveket véletlenszerűen írja be. Lehet, hogy először rendezni tudja őket, majd egyesével másolni és beilleszteni más új munkalapokba. Ehhez azonban türelmére lesz szükség az ismételt másoláshoz és beillesztéshez. Ma néhány gyors trükkről fogok beszélni ennek a feladatnak a megoldására.

doc felosztotta az adatokat az 1. oszlopokra

Az adatok felosztása több munkalapra VBA kóddal ellátott oszlop alapján

Ossza fel az adatokat több munkalapra oszlop alapján az Kutools for Excel alkalmazással


Az adatok felosztása több munkalapra VBA kóddal ellátott oszlop alapján

Ha gyorsan és automatikusan fel akarja osztani az adatokat az oszlop értéke alapján, akkor a következő VBA-kód jó választás. Kérjük, tegye a következőket:

1. Tartsa lenyomva a ALT + F11 billentyűk megnyitásához Microsoft Visual Basic for Applications ablak.

2. Kattints betétlap > Modulok, és illessze be a következő kódot a Modul ablakba.

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. Ezután nyomja meg a gombot F5 kulcs a kód futtatásához, és megjelenik egy prompt doboz, amely emlékezteti Önt a fejléc sorának kiválasztására, lásd a képernyőképet:

doc felosztotta az adatokat az 7. oszlopokra

4. Ezután kattintson OK gombra, és a második mezőben válassza ki az oszlopadatokat, amelyek alapján fel akarja osztani, lásd a képernyőképet:

doc felosztotta az adatokat az 8. oszlopokra

5. Ezután kattints a gombra OK, és az aktív munkalap összes adata több munkalapra oszlik az oszlop értéke alapján. Az osztott munkalapokat pedig a hasított cellák nevével nevezik el. Lásd a képernyőképet:

doc felosztotta az adatokat az 2. oszlopokra

Megjegyzések: Az osztott munkalapok a munkafüzet végébe kerülnek, ahol a fő munkalap található.


Ossza fel az adatokat több munkalapra oszlop alapján az Kutools for Excel alkalmazással

Excel-kezdőként ez a hosszú VBA-kód némileg nehéz számunkra, sőt a legtöbben nem is tudjuk, hogyan kell a kódot szükség szerint módosítani. Itt bemutatok egy multifunkcionális eszközt -Kutools az Excel számára, annak Osztott adatok A segédprogram nemcsak az oszlopok alapján több munkalapra oszthatja az adatokat, hanem az adatokat sorszám szerint is fel tudja osztani.

Jegyzet:Ennek alkalmazásához Osztott adatok, először is le kell töltenie a Kutools az Excel számára, majd gyorsan és egyszerűen alkalmazza a funkciót.

Telepítése után Kutools az Excel számára, kérjük, tegye a következőket:

1. Válassza ki a felosztani kívánt adattartományt.

2. Kattints Kutools Plus > Munkalap > Osztott adatok, lásd a képernyőképet:

doc felosztotta az adatokat az 3. oszlopokra

3. Az Az adatok felosztása több munkalapra párbeszédpanelen:

1). Válassza a lehetőséget Konkrét oszlop lehetőség a Felosztása alapján szakaszban válassza ki azt az oszlopértéket, amely alapján az adatokat fel szeretné osztani a legördülő listában. (Ha az adatainak fejlécei vannak, és be akarja őket illeszteni minden új felosztott munkalapba, ellenőrizze Adataim fejléceket tartalmaznak választási lehetőség.)

2). Ezután megadhatja az osztott munkalap nevét a Új munkalapok neve szakaszban adja meg a munkalap nevének szabályait a Szabályok legördülő listából felveheti a prefix or képző a lapnevekhez is.

3). Kattints a OK gomb. Lásd a képernyőképet:

doc felosztotta az adatokat az 4. oszlopokra

4. Az adatok több munkalapra vannak felosztva egy új munkafüzetben.

doc felosztotta az adatokat az 5. oszlopokra

Kattintson a Kutools for Excel és az ingyenes próbaverzió letöltéséhez!


Ossza fel az adatokat több munkalapra oszlop alapján az Kutools for Excel alkalmazással

Kutools az Excel számára több mint 300 praktikus Excel eszközt tartalmaz. 30 nap alatt szabadon kipróbálható korlátozás nélkül. Töltse le most az ingyenes próbaverziót!


Kapcsolódó cikk:

Hogyan lehet felosztani az adatokat több munkalapra sorszám szerint?


A legjobb irodai termelékenységi eszközök

A Kutools for Excel megoldja a legtöbb problémát, és 80% -kal növeli a termelékenységet

  • újrafelhasználás: Gyorsan helyezze be összetett képletek, diagramok és bármi, amit korábban használt; Cellák titkosítása jelszóval; Levelezőlista létrehozása és e-maileket küldeni ...
  • Szuper Formula Bár (könnyedén szerkeszthet több szöveget és képletet); Olvasás elrendezés (könnyen olvasható és szerkeszthető nagyszámú cella); Beillesztés a Szűrt tartományba...
  • Cellák / sorok / oszlopok egyesítése az adatok elvesztése nélkül; Osztott cellák tartalma; Kombinálja a duplikált sorokat / oszlopokat... megakadályozza az ismétlődő cellákat; Hasonlítsa össze a tartományokat...
  • Válassza a Másolat vagy az Egyedi lehetőséget Sorok; Válassza az Üres sorok lehetőséget (az összes cella üres); Super Find és Fuzzy Find sok munkafüzetben; Véletlenszerű kiválasztás ...
  • Pontos másolás Több cella a képletreferencia megváltoztatása nélkül; Automatikus referenciák létrehozása több lapra; Helyezze be a golyókat, Jelölőnégyzetek és még sok más ...
  • Kivonat szöveg, Szöveg hozzáadása, Eltávolítás pozíció szerint, Hely eltávolítása; Hozz létre és nyomtasson személyhívó részösszegeket; Konvertálás a cellatartalom és a megjegyzések között...
  • Szuper szűrő (mentse el és alkalmazza a szűrősémákat más lapokra); Haladó rendezés hónap / hét / nap, gyakoriság és egyebek szerint; Speciális szűrő félkövér, dőlt betűvel ...
  • Kombinálja a munkafüzeteket és a munkalapokat; Táblázatok egyesítése kulcsoszlopok alapján; Az adatok felosztása több lapra; Kötegelt konvertálás xls, xlsx és PDF...
  • Több mint 300 hatékony funkció. Támogatja az Office / Excel 2007-2021 és 365 verziókat. Minden nyelvet támogat. Könnyű üzembe helyezés vállalatában vagy szervezetében. Teljes funkciók 30 napos ingyenes próbaverzió. 60 napos pénzvisszafizetési garancia.
kte lap 201905

Az Office fül a füles felületet hozza az Office-ba, és sokkal könnyebbé teszi a munkáját

  • Füles szerkesztés és olvasás engedélyezése Wordben, Excelben és PowerPointban, Publisher, Access, Visio és Project.
  • Több dokumentum megnyitása és létrehozása ugyanazon ablak új lapjain, mint új ablakokban.
  • 50% -kal növeli a termelékenységet, és naponta több száz kattintással csökkenti az egér kattintását!
officetab alja
A megjegyzések rendezése szerint
Hozzászólások (303)
Még nincs értékelés. Legyen Ön az első, aki értékel!
A weboldal moderátora ezt a megjegyzést minimalizálta
Az adatok több munkalapra történő felosztása VBA-kóddal ellátott oszlop alapján némi hibát jelez. kérjük, próbálja meg javítani és frissíteni ugyanazt. Ha megadja a minta Excel fájlokat, az nagyon hasznos lesz.
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia, köszönöm a kódot, ami nekem működik! Olyan kódot próbálok találni, amely egy mesterlapot több lapra oszt fel dátum alapján
A weboldal moderátora ezt a megjegyzést minimalizálta
Ez hihetetlen volt! Ez a folyamat több mint egy óráig tartott volna, de 30 másodpercen belül megtörtént. Ezt megtartom a VBA könyvtáramnak. Köszönöm!
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia! 30000 8 cella van a munkalapomon, és ezeket hónapok alatt fel kell osztanom. van valami kód, amivel gyorsabban meg tudom csinálni? XNUMX oszlopom van, és a dátum a B oszlop. Játszottam a fenti kóddal, ami megadva van, de sokszor nem sikerült. Kérem, segítsen nekem ebben. Előre is köszönöm
A weboldal moderátora ezt a megjegyzést minimalizálta
A következő hibaüzenetet kapom: Futásidejű hiba '6' túlcsordulás Hibakeresés után mutasd meg a For i = 2 To Ir sort Az Excel soraim 500,000 XNUMX felett vannak. Van valami megoldás Köszönöm szépen a kódot. Best Regard Lok
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia! Köszönjük szépen a kódot. A következő hibaüzenetet kapom: Futásidejű hiba '6' túlcsordulás a sorban For i = 2 To Ir Bármilyen megoldás erre. Köszönöm
A weboldal moderátora ezt a megjegyzést minimalizálta
Hibaüzenetet kapok az F5 megnyomásakor - GoTo Box referenciát kér??
A weboldal moderátora ezt a megjegyzést minimalizálta
A VBA folyamat tökéletesen működött, köszönöm szépen, hogy megosztotta szakértelmét és sok időt megspórolt nekem!
A weboldal moderátora ezt a megjegyzést minimalizálta
A VBA kód tökéletesen működött. Úgy tűnik, hogy nem frissíti a munkalapokat, mivel az 1. munkalapon módosultak. Kérlek segíts.
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia! Köszönöm a kódot, ami nekem működik! Csak két kérdésem/ észrevételem van. 1 a másolt adatok nem tartalmazzák az eredeti fájl elrendezését. Lehetséges lenne az adatokat táblázatba másolni automatikus szűrővel? 2 úgy tűnik, hogy a másolt adatok nincsenek a címtartományhoz kötve. Lehetséges egy adott tartomány vagy táblanév kódjának módosítása? Ezek a beállítások nagyon hasznosak lennének. Üdvözlettel, Pieter
A weboldal moderátora ezt a megjegyzést minimalizálta
Úgy működik, mint a karikacsapás! Köszönöm.
A weboldal moderátora ezt a megjegyzést minimalizálta
Úgy működik, mint egy bűbáj... Köszönöm a prémium kódot... :lol:
A weboldal moderátora ezt a megjegyzést minimalizálta
Köszönöm szépen, ez remekül sikerült. Mi történik azonban, ha azt szeretném, hogy az egyes lapokon lévő adatok újra legyenek rendezve (a portok oszlop használatával)? Alapvetően ez a VBA lapokra bontja, de lehet, hogy szeretném tovább bontani.. lehetséges ez?
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Jonathan! Régi megjegyzést ismerek, de hasznos lehet mások számára a jövőben: meg kellett tennem, de nem találtam egyszerű módot a VBA-val. Azonban azt tapasztaltam, hogy ha új oszlopot hoz létre a táblázatban a 2 összevonásaként, tehát pl. =A1&" "&A2 Ez 1 cellát ad mindkét információkészlettel. Ezután futtathatja a fenti modult, és jól működik! Szerkesztés – Az oszlopokban lévő adatoknak 30 karakternél rövidebbnek kell lenniük, különben az adatok nem másolódnak át (a modul hibájaként jelenik meg), és egy üres lapot kap az új munkalapok közepén.
A weboldal moderátora ezt a megjegyzést minimalizálta
Félelmetes.. Ez lenyűgöző volt. Olyan sokáig küzdöttem ezzel a problémával, és ez a kód haladékként érkezett. Köszönöm, hogy megosztottad.
A weboldal moderátora ezt a megjegyzést minimalizálta
Elképesztő. Köszönöm, hogy közzétetted.
A weboldal moderátora ezt a megjegyzést minimalizálta
A kód bűbájként működött egy kisebb adatnál (kevesebb mint 1200 sor). Megpróbáltam használni a nagyobb munkalapon (17000 sor), de 10-12 lapra bontás után egyszerűen összeomlott. Ezért megpróbáltuk felosztani az eredeti adatokat 3 különböző munkafüzetre, és mégis leállítottuk. Windows 7-ünk van, és a számítógépeink sem olyan lassúak. Javasol valamilyen korlátozott adatsort a kód biztonságos használatához? Bármilyen javaslatot szívesen vennénk.
A weboldal moderátora ezt a megjegyzést minimalizálta
A kód bűbájként működött egy kisebb adatnál (kevesebb mint 1200 sor). Megpróbáltam használni a nagyobb munkalapon (17000 sor), de 10-12 lapra bontás után egyszerűen összeomlott. Ezért megpróbáltuk felosztani az eredeti adatokat 3 különböző munkafüzetre, és mégis leállítottuk. Windows 7-ünk van, és a számítógépeink sem olyan lassúak. Javasol valamilyen korlátozott adatsort a kód biztonságos használatához? Bármilyen javaslatot szívesen vennénk. Amiben nem vagyok biztos: mennyi sorok maximális száma támogatható a makró által? Játszhatnék vele... Valahol 20k és 40k között van![/quote]
A weboldal moderátora ezt a megjegyzést minimalizálta
Ugyanazzal a problémával szembesül. A kód olyan munkalapokon működik, ahol az adatok kevesebb sorból állnak, de nagyobb adatok esetén hibát jelez: "Az Excel nem tudja elvégezni ezt a feladatot a rendelkezésre álló erőforrásokkal. Válasszon kevesebb adatot, vagy zárjon be más alkalmazásokat" (egyszerre nem működik más alkalmazás) A kód úgy működött, mint egy kis adat (kevesebb mint 1200 sor). Megpróbáltam használni a nagyobb munkalapon (17000 sor), de 10-12 lapra bontás után egyszerűen összeomlott. Ezért megpróbáltuk felosztani az eredeti adatokat 3 különböző munkafüzetre, és mégis leállítottuk. Windows 7-ünk van, és a számítógépeink sem olyan lassúak. Javasol valamilyen korlátozott adatsort a kód biztonságos használatához? Bármilyen javaslatot szívesen vennénk.
A weboldal moderátora ezt a megjegyzést minimalizálta
Te vagy a mindenkori hősöm! Hónapok óta vadásztam erre, sikertelenül. Ezt a heti/havi jelentést 147+ munkalapra kell felosztanom, és nem kapok kutoolokat. Ezzel kapcsolatban.. Valóban meg kell tanulnom kódolni. :( De köszönöm!
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia! Van egy lapom, amiben 65000 rekord van és 8 különböző eset van, tehát alapvetően 80 különböző lapot kell generálnia. Megpróbáltam futtatni ezt a kódot, de Runtime Error 6 Overflow-t dob ​​ki. Meg lehet változtatni ezt a kódot, hogy megoldja a problémámat? Kérjük, ur segítségét nagyra értékeljük.
A weboldal moderátora ezt a megjegyzést minimalizálta
[quote]Szia! Van egy lapom 65000 rekorddal és 8 különböző esettel, tehát alapvetően 80 különböző lapot kell generálnia. Megpróbáltam futtatni ezt a kódot, de Runtime Error 6 Overflow-t dob ​​ki. Meg lehet változtatni ezt a kódot, hogy megoldja a problémámat? Kérjük, ur segítségét nagyra értékeljük.Az ACE által[/quote] Próbáld módosítani a Dim vcol, i As Integer beállítást Dim vcol-ra, i As Long
A weboldal moderátora ezt a megjegyzést minimalizálta
Szia Megpróbáltam megváltoztatni a DIM vcol-t LOng-ra, és jól működött, de hirtelen egy hiba miatt nincs elég memória a művelet végrehajtásához, próbáljon meg kevesebb adatot használni, vagy zárjon be más alkalmazásokat. Bár nincs más alkalmazásom nyitva. Alig több, mint 100 16 sorom van és kb. XNUMX MB fájlméret. bármilyen segítség hálás lenne. Köszönöm Mustafa
A weboldal moderátora ezt a megjegyzést minimalizálta
Csodálatos kódrészlet – tökéletesen működik (ha módosítja a változókat olyanra, amelyre a táblázatnak szüksége van)
A weboldal moderátora ezt a megjegyzést minimalizálta
Van egy változó sorszámú lapom. Az egyik rovat a 2010-től kezdődő dátumokat tartalmazza. A többi oszlop az alapok neveit tartalmazza, az egyes alapok NAV-adataival dátum szerint. Tehát nem szeretném az oszlopokat külön-külön lapokra felosztani, hanem minden ALAP NEVET saját lapra szeretnék felosztani a Hónapvégi dátum szerinti NAV adatokkal, nem a napi dátumokkal. Meg lehet ezt csinálni, vagy lehetetlen?
A weboldal moderátora ezt a megjegyzést minimalizálta
Van egy munkalapom, amit használok, és próbálok találni egy vba kódot, ami helyreállítja a fiók nevét, és átmásolja a sajátos sort egy új, azonos nevű munkafüzetbe és lapba. Tudsz segíteni?
A weboldal moderátora ezt a megjegyzést minimalizálta
Nagy! A VBA kód működik, köszönöm! Szükségem van ezekre a kimeneti munkalapokra, hogy az egyes Excel-fájlokban legyenek munkalapok helyett, és hiba történik, amikor sok munkalapra osztom fel.
A weboldal moderátora ezt a megjegyzést minimalizálta
A Starscor és Tim, ha a fájl lapjait több fájlra szeretné felosztani a sorok neveivel, egy kis makrókód található ugyanazon a weboldalon, amely ezt teszi, csak keresse meg a "munkafüzet felosztása az Excel-fájlok elkülönítéséhez" kifejezést. meg fogja találni. Adja hozzá ennek a példának a kódját ennek a példának a végéhez, természetesen törölve a duplikált vég al- és alcímet, és mindegyikhez egy fájlt kap.
A weboldal moderátora ezt a megjegyzést minimalizálta
tudna valaki segíteni, hogyan kell egyszerre rendezni az oszlopokat ugyanabban a munkafüzetben, és hogyan távolíthatom el a duplikációkat a különböző lapokról, mivel körülbelül 65 lap van ugyanabban a munkafüzetben
A weboldal moderátora ezt a megjegyzést minimalizálta
ez olyan izgalmas! Köszönöm. Már egy ideje ezt keresem.
A weboldal moderátora ezt a megjegyzést minimalizálta
Kiváló – köszönöm, hogy megosztottad ezt. Még a kiemeléseket/formátumot is továbbítja új munkalapokra!
Még senki sem írt megjegyzést
Több ingatlan
Hagyja meg észrevételeit
Feladás vendégként
×
Értékeld ezt a bejegyzést:
0   Karakterek
Javasolt helyek

Kövess minket

Copyright © 2009 - www.extendoffice.com. | Minden jog fenntartva. Powered by ExtendOffice. | Oldaltérkép
A Microsoft és az Office logó a Microsoft Corporation védjegyei vagy bejegyzett védjegyei az Egyesült Államokban és / vagy más országokban.
Sectigo SSL védi