2 snabba medel för att dela upp ett Excel-kalkylblads innehåll i flera arbetsböcker baserat på en specifik kolumn

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.

Exempel på Excel-kalkylblad

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

  1. Välj först en cell i den specifika kolumnen, som ”Cell B1” i min egen instans.
  2. Vänd dig sedan till fliken "Data" och klicka på "Filter" -knappen.Filtrera data
  3. Klicka sedan på "nedåtpilen" i kolumnrubriken för att visa en lista med filterval.
  4. Avmarkera nu alternativet “(Välj alla)”.Avmarkera "Markera alla"
  5. Därefter kan du välja ett filterval, som "29.95" i mitt exempel, och klicka på "OK".
  6. På en gång kommer bara data, vars värde i kolumn B är “29.95”, att vara kvar.Endast filtrerade data är kvar
  7. Kopiera sedan de filtrerade uppgifterna och klistra in dem i en ny Excel-arbetsbok.Kopiera och klistra in innehåll
  8. 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

  1. För det första, se till att det specifika kalkylbladet öppnas.
  2. Starta sedan VBA-redigeraren enligt “Så här kör du VBA-kod i din Excel".
  3. 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

VBA-kod - Dela upp ett Excel-arbetsblads innehåll i flera arbetsböcker baserat på en specifik kolumn

  1. Klicka därefter på "Kör" -ikonen i verktygsfältet eller tryck på "F5" -tangenten.
  2. När makrot är klart kommer de separata Excel-arbetsböckerna att skapas med delad data från Excel-kalkylbladet.Nya Excel-arbetsböcker
  3. Varje arbetsbok ser ut som följande skärmdump.Separera nya Excel-arbetsböcker

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

Kommentarer är stängda.