Ibland, vid dataanalys, kan du behöva dela upp innehållet i ett Excel-kalkylblad i flera Excel-arbetsböcker enligt en specifik kolumn. I det här inlägget ska vi lära dig två snabba sätt att få det.
Många användare behöver ofta dela ett Excel-kalkylblad som innehåller enorma rader med data i flera separata Excel-arbetsböcker baserat på en viss kolumn. Här är till exempel mitt Excel-kalkylblad. Jag vill dela upp det här bladets data på grundval av kolumnen "Pris för enstaka licens (US $)" i flera arbetsböcker.

I allmänhet brukar du använda följande metod 1 för att manuellt filtrera och kopiera data. Men det blir ganska tråkigt och dumt om det finns för många filteralternativ. Därför visar vi här också ett mycket mer bekvämt sätt - Metod 2, som använder VBA. Läs vidare för att få dem i detalj.
Metod 1: Kopiera innehållet till separata Excel-arbetsböcker efter filtrering
- Välj först en cell i den specifika kolumnen, som ”Cell B1” i min egen instans.
- Vänd dig sedan till fliken "Data" och klicka på "Filter" -knappen.
- Klicka sedan på "nedåtpilen" i kolumnrubriken för att visa en lista med filterval.
- Avmarkera nu alternativet “(Välj alla)”.
- Därefter kan du välja ett filterval, som "29.95" i mitt exempel, och klicka på "OK".
- På en gång kommer bara data, vars värde i kolumn B är “29.95”, att vara kvar.
- Kopiera sedan de filtrerade uppgifterna och klistra in dem i en ny Excel-arbetsbok.
- Senare använder du samma sätt för att dela upp andra data för att separera Excel-arbetsböcker.
Metod 2: Gruppera delat innehåll i flera Excel-arbetsböcker via VBA
- För det första, se till att det specifika kalkylbladet öppnas.
- Starta sedan VBA-redigeraren enligt “Så här kör du VBA-kod i din Excel".
- Lägg sedan in följande kod i projektet "ThisWorkbook".
Sub SplitSheetDataIntoMultipleWorkbooksBasedOnSpecificColumn()
Dim objWorksheet As Excel.Worksheet
Dim nLastRow, nRow, nNextRow As Integer
Dim strColumnValue As String
Dim objDictionary As Object
Dim varColumnValues As Variant
Dim varColumnValue As Variant
Dim objExcelWorkbook As Excel.Workbook
Dim objSheet As Excel.Worksheet
Set objWorksheet = ActiveSheet
nLastRow = objWorksheet.Range("A" & objWorksheet.Rows.Count).End(xlUp).Row
Set objDictionary = CreateObject("Scripting.Dictionary")
For nRow = 2 To nLastRow
'Get the specific Column
'Here my instance is "B" column
'You can change it to your case
strColumnValue = objWorksheet.Range("B" & nRow).Value
If objDictionary.Exists(strColumnValue) = False Then
objDictionary.Add strColumnValue, 1
End If
Next
varColumnValues = objDictionary.Keys
For i = LBound(varColumnValues) To UBound(varColumnValues)
varColumnValue = varColumnValues(i)
'Create a new Excel workbook
Set objExcelWorkbook = Excel.Application.Workbooks.Add
Set objSheet = objExcelWorkbook.Sheets(1)
objSheet.Name = objWorksheet.Name
objWorksheet.Rows(1).EntireRow.Copy
objSheet.Activate
objSheet.Range("A1").Select
objSheet.Paste
For nRow = 2 To nLastRow
If CStr(objWorksheet.Range("B" & nRow).Value) = CStr(varColumnValue) Then
'Copy data with the same column "B" value to new workbook
objWorksheet.Rows(nRow).EntireRow.Copy
nNextRow = objSheet.Range("A" & objWorksheet.Rows.Count).End(xlUp).Row + 1
objSheet.Range("A" & nNextRow).Select
objSheet.Paste
objSheet.Columns("A:B").AutoFit
End If
Next
Next
End Sub
- Klicka därefter på "Kör" -ikonen i verktygsfältet eller tryck på "F5" -tangenten.
- När makrot är klart kommer de separata Excel-arbetsböckerna att skapas med delad data från Excel-kalkylbladet.
- Varje arbetsbok ser ut som följande skärmdump.
Jämförelse
| Fördelar | Nackdelar | |
| Förfarande 1 | 1. Lätt att använda för alla Excel-användare | Besvärligt om det finns för många filterval |
| 2. Snabb om det finns få filterval | ||
| Förfarande 2 | Mycket effektivare än metod 1 oavsett hur många filter du väljer | Lite svårt att använda för VBA-nybörjare |
Förhindra Excel-dataförlust
Även om MS Excel blir mer och mer avancerat och sofistikerat, tenderar det fortfarande att krascha då och då på grund av diverse faktorer, såsom skadliga tillägg från tredje part eller mänskliga fel och så vidare. Sedan Excel krasch kan direkt leda till Excel-korruption, för att undvika Excel-dataförlust, måste du säkerhetskopiera dina Excel-filer regelbundet. Annars måste du använda ett Excel-reparationsverktyg, till exempel DataNumen Excel Repair för att fixa skadade Excel-filer.
Författarintroduktion:
Shirley Zhang är expert på dataåterställning DataNumen, Inc., som är världsledande inom teknik för återställning av data, inklusive SQL Server reparation och Outlook-programvara för reparationsprogramvara. För mer information besök www.datanumen.com






