Excel-tips: Dela upp data i flera kalkylblad/arbetsböcker baserat på kolumnvärde
När du hanterar stora datamängder i Excel kan det vara mycket fördelaktigt att dela upp data i flera kalkylblad baserat på specifika kolumnvärden. Denna metod förbättrar inte bara organiseringen av data utan förbättrar också läsbarheten och underlättar dataanalys.
Anta att du har en stor försäljningspost som innehåller flera poster som produktnamnet, kvantiteten såld under det första kvartalet. Målet är att dela upp dessa data i separata kalkylblad baserat på varje produktnamn så att individuella försäljningsresultat kan analyseras separat.
Dela upp data i flera kalkylblad baserat på kolumnvärde
Dela upp data i flera arbetsböcker baserat på kolumnvärde med VBA-kod
Dela upp data i flera kalkylblad baserat på kolumnvärde
Normalt kan du sortera datalistan först och sedan kopiera och klistra in dem en efter en i andra nya kalkylblad. Men detta kommer att kräva ditt tålamod för att kopiera och klistra upprepade gånger. I det här avsnittet kommer vi att introducera två enkla metoder för att effektivt hantera denna uppgift i Excel, vilket sparar tid och minskar risken för fel.
Dela upp data i flera kalkylblad baserat på kolumnvärde med VBA-kod
1. Håll ner ALT + F11 nycklar för att öppna Microsoft Visual Basic för applikationer fönster.
2. klick Insert > Modulernaoch klistra in följande kod i modulfönstret.
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. Tryck sedan på F5 för att köra koden, och en uppmaningsruta dyker upp för att påminna dig om att välja rubrikraden och klicka sedan på OK. Se skärmdump:
4. I den andra uppmaningsrutan, välj kolumndata som du vill dela upp baserat på och klicka sedan OK. Se skärmdump:
5. All data i det aktiva kalkylbladet är uppdelat i flera kalkylblad baserat på kolumnvärdena. De resulterande kalkylbladen namnges enligt värdena i de delade cellerna och placeras i slutet av arbetsboken. Se skärmdump:
Dela upp data i flera kalkylblad baserat på kolumnvärde med Kutools för Excel
Kutools för Excel ger smart funktion - Split data direkt in i din Excel-miljö. Att dela upp data i flera kalkylblad är inte längre en utmaning. Vårt intuitiva verktyg delar automatiskt upp din datamängd baserat på det valda kolumnvärdet eller antalet rader, vilket säkerställer att varje information är precis där du behöver den. Säg adjö till den tråkiga uppgiften att manuellt organisera dina kalkylblad och omfamna ett snabbare, felfritt sätt att hantera din data.
När du har installerat Kutools för Excel, välj dataintervallet och klicka sedan Kutools Plus > Split data att öppna Dela upp data i flera kalkylblad dialog ruta.
- Välja Specifik kolumn alternativet i Dela baserat på och välj det kolumnvärde som du vill dela data baserat på från rullgardinsmenyn.
- Om dina data har rubriker och du vill infoga dem i varje nytt delat kalkylblad, kontrollera Mina data har rubriker alternativ. (Du kan ange antalet rubrikrader baserat på dina data. Om din data till exempel innehåller två rubriker, skriv 2.)
- Sedan kan du ange namnen på delat kalkylblad under Nytt kalkylbladets namn sektion, ange regeln för kalkylbladsnamn från rullgardinsmenyn Regler, kan du lägga till Prefix or Ändelse för arknamnen också.
- Klicka på OK knapp. Se skärmdump:
Nu delas data i kalkylbladet upp i flera kalkylblad i en ny arbetsbok.
Dela upp data i flera arbetsböcker baserat på kolumnvärde med VBA-kod
Ibland, snarare än att dela upp data i flera kalkylblad, kan det vara mer fördelaktigt att dela upp data i separata arbetsböcker baserat på en nyckelkolumn. Här är en steg-för-steg-guide om hur du använder VBA-kod för att automatisera processen att dela upp data i flera arbetsböcker baserat på ett specifikt kolumnvärde.
1. Håll ner ALT + F11 nycklar för att öppna Microsoft Visual Basic för applikationer fönster.
2. klick Insert > Modulernaoch klistra in följande kod i Modulfönster.
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. Tryck sedan på F5 för att köra koden, och en uppmaningsruta dyker upp för att påminna dig om att välja rubrikraden och klicka sedan på OK. Se skärmdump:
4. I den andra uppmaningsrutan, välj kolumndata som du vill dela upp baserat på och klicka sedan OK. Se skärmdump:
5. Efter uppdelningen delas all data i det aktiva kalkylbladet upp i flera arbetsböcker baserat på kolumnvärdena. Alla delade arbetsböcker sparas i den mapp du angav. Se skärmdump:
Relaterade artiklar:
- Dela data i flera kalkylblad efter antal rader
- Att effektivt dela upp ett stort dataintervall i flera Excel-kalkylblad baserat på ett specifikt radantal kan effektivisera datahanteringen. Att till exempel dela upp en datauppsättning var 5:e rad i flera ark kan göra den mer hanterbar och organiserad. Den här guiden erbjuder två praktiska metoder för att utföra denna uppgift snabbt och enkelt.
- Slå samman två eller flera tabeller till en baserad på nyckelkolumner
- Om du antar att du har tre tabeller i en arbetsbok, nu vill du slå samman dessa tabeller i en tabell baserat på motsvarande nyckelkolumner för att få resultatet enligt nedanstående skärmdump. Det här kan vara en besvärlig uppgift för de flesta av oss, men oroa dig inte, den här artikeln, jag kommer att introducera några metoder för att lösa detta problem.
- Dela upp textsträngar med avgränsare i flera rader
- Normalt kan du använda funktionen Text till kolumn för att dela upp cellinnehåll i flera kolumner med en specifik avgränsare, såsom kommatecken, punkt, semikolon, snedstreck, etc. Men ibland kan du behöva dela upp det avgränsade cellinnehållet i flera rader och upprepa data från andra kolumner enligt skärmbilden nedan. Har du några bra sätt att hantera denna uppgift i Excel? Denna handledning introducerar några effektiva metoder för att slutföra det här jobbet i Excel.
- Dela upp flerrads cellinnehåll i separerade rader/kolumner
- Om du antar att du har cellinnehåll med flera rader som separeras med Alt + Enter, och nu måste du dela upp flerradsinnehållet till separerade rader eller kolumner, vad kan du göra? I den här artikeln kommer du att lära dig hur du snabbt delar upp flerradscellinnehåll i separerade rader eller kolumner.
Bästa kontorsproduktivitetsverktyg
Uppgradera dina Excel-färdigheter med Kutools för Excel och upplev effektivitet som aldrig förr. Kutools för Excel erbjuder över 300 avancerade funktioner för att öka produktiviteten och spara tid. Klicka här för att få den funktion du behöver mest...
Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare
- Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
- Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
- Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!