Noen ganger, i dataanalyse, må du kanskje dele innholdet i et Excel-regneark i flere Excel-arbeidsbøker i henhold til en bestemt kolonne. Nå, i denne sost, vil vi lære deg 2 raske måter å få det på.
Mange brukere trenger ofte å dele et Excel-regneark som inneholder enorme rader med data i flere separate Excel-arbeidsbøker basert på en bestemt kolonne. For eksempel, her er mitt eksempel på Excel-regnearket. Jeg vil dele dette arkets data på grunnlag av kolonnen "Pris på enkeltlisens (US$)" i flere arbeidsbøker.

Generelt vil du pleier å bruke følgende metode 1 for å manuelt filtrere og kopiere data. Men det vil være ganske kjedelig og dumt hvis det er for mange filteralternativer. Derfor viser vi her også en mye mer praktisk måte – Metode 2, som bruker VBA. Les videre for å få dem i detalj.
Metode 1: Kopier innhold til separate Excel-arbeidsbøker etter filter
- Først velger du en celle i den spesifikke kolonnen, som "Celle B1" i min egen forekomst.
- Gå deretter til "Data"-fanen og klikk på "Filter" -knappen.
- Klikk deretter på "pil ned"-knappen i kolonneoverskriften for å vise en liste over filtervalg.
- Nå, fjern merket for "(Velg alle)" alternativet.
- Etter det kan du velge ett filtervalg, som "29.95" i eksemplet mitt, og klikke på "OK".
- På en gang vil bare dataene, hvis verdi i kolonne B er "29.95", være igjen.
- Deretter kopierer du de filtrerte dataene og limer dem inn i en ny Excel-arbeidsbok.
- Bruk senere på samme måte for å dele de andre dataene for å skille Excel-arbeidsbøker.
Metode 2: Batchdeling av innhold i flere Excel-arbeidsbøker via VBA
- For det første, sørg for at det spesifikke regnearket er åpnet.
- Deretter starter du VBA-editor i henhold til "Hvordan kjøre VBA-kode i Excel".
- Deretter legger du følgende kode inn i "ThisWorkbook"-prosjektet.
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
- Deretter klikker du på "Kjør"-ikonet i verktøylinjen eller trykker på "F5"-tasten.
- Når makroen er ferdig, opprettes de separate Excel-arbeidsbøkene med de delte dataene fra Excel-kilderegnearket.
- Hver arbeidsbok vil se ut som følgende skjermbilde.
Sammenligning
| Fordeler | Ulemper | |
| Metode 1 | 1. Enkel å betjene for alle Excel-brukere | Plagsomt hvis det er for mange filtervalg |
| 2. Rask hvis det er få filtervalg | ||
| Metode 2 | Mye mer effektiv enn metode 1 uansett antall filtervalg | Litt vanskelig å betjene for VBA-nybegynnere |
Forhindre tap av Excel-data
Selv om MS Excel blir mer og mer avansert og sofistikert, har det fortsatt en tendens til å krasje fra tid til annen på grunn av diverse faktorer, som ondsinnede tredjepartstillegg eller menneskelige feil og så videre. Siden Excel-krasj kan direkte føre til Excel-korrupsjon, for å unngå tap av Excel-data, må du sikkerhetskopiere Excel-filene dine med jevne mellomrom. Ellers må du bruke et Excel-reparasjonsverktøy, som f.eks DataNumen Excel Repair for å fikse ødelagte Excel-filer.
Forfatterintroduksjon:
Shirley Zhang er en datagjenopprettingsekspert innen DataNumen, Inc., som er verdensledende innen datagjenopprettingsteknologier, inkludert SQL Server reparasjon og Outlook-reparasjonsprodukter. For mer informasjon besøk www.datanumen. Med






