Hvordan opdeles data i flere regneark baseret på kolonne i Excel?
Antag, at du har et regneark med enorme rækker med data, og nu skal du opdele dataene i flere regneark baseret på Navn kolonne (se følgende skærmbillede), og navnene indtastes tilfældigt. Måske kan du først sortere dem og derefter kopiere og indsætte dem en efter en i andre nye regneark. Men dette kræver din tålmodighed til at kopiere og indsætte gentagne gange. I dag vil jeg tale om nogle hurtige tricks til at løse denne opgave.
Opdel data i flere regneark baseret på kolonne med VBA-kode
Opdel data i flere regneark baseret på kolonne med Kutools til Excel
Opdel data i flere regneark baseret på kolonne med VBA-kode
Hvis du hurtigt og automatisk vil opdele data baseret på søjleværdi, er følgende VBA-kode et godt valg. Gør som dette:
1. Hold nede ALT + F11 nøgler til at åbne Microsoft Visual Basic til applikationer vindue.
2. Klik indsatte > Moduler, og indsæt følgende kode i modulvinduet.
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. Tryk derefter på F5 nøgle til at køre koden, og der vises en promptboks for at minde dig om at vælge overskriftsrækken, se skærmbillede:
4. Klik derefter på OK knappen, og i det andet felt til prompt skal du vælge de søjledata, du vil opdele baseret på, se skærmbillede:
5. Klik derefter på OK, og alle data i det aktive regneark er opdelt i flere regneark efter kolonneværdien. Og de delte regneark er navngivet med de delte cellenavne. Se skærmbillede:
Bemærk: De opdelte regneark placeres i slutningen af projektmappen, hvor masterarket er i.
Opdel data i flere regneark baseret på kolonne med Kutools til Excel
Som en nybegynder i Excel er denne lange VBA-kode noget vanskelig for os, og de fleste af os ved endda ikke, hvordan vi skal ændre koden som vores behov. Her vil jeg introducere dig til et multifunktionelt værktøj--Kutools til Excel, dens Opdel data hjælpeprogram kan ikke kun hjælpe dig med at opdele data i flere regneark baseret på kolonne, men kan også opdele data efter antal rækker.
Bemærk:At anvende dette Opdel dataFor det første skal du downloade Kutools til Excel, og anvend derefter funktionen hurtigt og nemt.
Efter installation Kutools til Excelskal du gøre som dette:
1. Vælg det dataområde, du vil opdele.
2. Klik Kutools Plus > Arbejdsark > Opdel data, se skærmbillede:
3. I Opdel data i flere regneark dialogboks skal du:
1). Vælg Specifik kolonne valgmulighed i Split baseret på sektion, og vælg den kolonneværdi, som du vil opdele data baseret på i rullelisten. (Hvis dine data har overskrifter, og du vil indsætte dem i hvert nye delte regneark, skal du kontrollere Mine data har overskrifter mulighed.)
2). Derefter kan du angive navnene på det delte regneark under Nyt regnearknavn sektion, specificer regnearkets navne regler fra Regler rulleliste, kan du tilføje Præfiks or Suffiks også for arknavne.
3). Klik på OK knap. Se skærmbillede:
4. Nu er dataene opdelt i flere regneark i en ny projektmappe.
Klik for at downloade Kutools til Excel og gratis prøveversion nu!
Opdel data i flere regneark baseret på kolonne med Kutools til Excel
Kutools til Excel indeholder mere end 300 praktiske Excel-værktøjer. Gratis at prøve uden begrænsning på 30 dage. Download den gratis prøveperiode nu!
Relateret artikel:
Hvordan opdeles data i flere regneark efter antal rækker?
Bedste kontorproduktivitetsværktøjer
Overlad dine Excel-færdigheder med Kutools til Excel, og oplev effektivitet som aldrig før. Kutools til Excel tilbyder over 300 avancerede funktioner for at øge produktiviteten og spare tid. Klik her for at få den funktion, du har mest brug for...
Fanen Office bringer en grænseflade til et kontor med Office, og gør dit arbejde meget lettere
- Aktiver redigering og læsning af faner i Word, Excel, PowerPoint, Publisher, Access, Visio og Project.
- Åbn og opret flere dokumenter i nye faner i det samme vindue snarere end i nye vinduer.
- Øger din produktivitet med 50 % og reducerer hundredvis af museklik for dig hver dag!