2 raske måter å dele innholdet i et Excel-regneark i flere arbeidsbøker basert på en bestemt kolonne

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.

Eksempel på Excel-regneark

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

  1. Først velger du en celle i den spesifikke kolonnen, som "Celle B1" i min egen forekomst.
  2. Gå deretter til "Data"-fanen og klikk på "Filter" -knappen.Filtrer data
  3. Klikk deretter på "pil ned"-knappen i kolonneoverskriften for å vise en liste over filtervalg.
  4. Nå, fjern merket for "(Velg alle)" alternativet.Fjern merket for "Velg alle"
  5. Etter det kan du velge ett filtervalg, som "29.95" i eksemplet mitt, og klikke på "OK".
  6. På en gang vil bare dataene, hvis verdi i kolonne B er "29.95", være igjen.Bare filtrerte data er igjen
  7. Deretter kopierer du de filtrerte dataene og limer dem inn i en ny Excel-arbeidsbok.Kopier og lim inn innhold
  8. 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

  1. For det første, sørg for at det spesifikke regnearket er åpnet.
  2. Deretter starter du VBA-editor i henhold til "Hvordan kjøre VBA-kode i Excel".
  3. 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 varColumnValue As ExelV Variant As ExcelW Variant orkbook 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 Til nLastRow 'Få den spesifikke kolonnen 'Her er forekomsten min "B"-kolonnen 'Du kan endre det til ditt tilfelle strColumnValue = objWorksheet.Range("B" & nRow).Verdi If objDictionary.Exists(strColumnValue) = False Then objDictionary.Add strColumnValue, 1 End If Next varColumnValues ​​=KeysDictionarys. For i = LBound(varColumnValues) To UBound(varColumnValues) varColumnValue = varColumnValues(i) 'Opprett en ny Excel-arbeidsbok Sett objExcelWorkbook = Excel.Application.Workbooks.Add Set objSheet = objExcelWorkName.W objWorksheet.Rows(1).EntireRow.Copy objSheet.Activate objSheet.Range("A1").Velg objSheet.Paste For nRow = 1 To nLastRow If CStr(objWorksheet.Range("B" & nRow).Value) = C (varColumnValue) Deretter 'Kopier data med samme kolonne "B"-verdi til ny arbeidsbok objWorksheet.Rows(nRow).EntireRow.Copy nNextRow = objSheet.Range("A" & objWorksheet.Rows.Count).End(xlUp). Rad + 2 objSheet.Range("A" & nNextRow).Velg objSheet.Paste objSheet.Columns("A:B").AutoFit End If Next Next End Sub

VBA-kode - Del innholdet i et Excel-regneark i flere arbeidsbøker basert på en bestemt kolonne

  1. Deretter klikker du på "Kjør"-ikonet i verktøylinjen eller trykker på "F5"-tasten.
  2. Når makroen er ferdig, opprettes de separate Excel-arbeidsbøkene med de delte dataene fra Excel-kilderegnearket.Nye Excel-arbeidsbøker
  3. Hver arbeidsbok vil se ut som følgende skjermbilde.Skill nye Excel-arbeidsbøker

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

6 svar på "2 raske måter å dele innholdet i et Excel-regneark i flere arbeidsbøker basert på en spesifikk kolonne"

  1. Hvis jeg vil at hver nye arbeidsbok skal hete "Arbeidsbok" og hvilken verdi som er i kolonne B, hvordan gjør jeg det?

  2. Hei,

    er det en måte å få de nye filene tilpasset navngitt og lagret i en bestemt mappe? Alt fungerer vakkert, annet enn egendefinert mappenavn og lagring.
    Takk.

    Marker

  3. Hallo. Hvordan vil VBA-koden endres hvis kolonnene byttes slik at prisen er i kolonne A i stedet for B? Prøvde å endre koden på egen hånd uten hell.

    Ville det i tillegg være mulig å generere nye regneark basert på en mal som allerede er ferdig? Så i utgangspunktet vil jeg at dataene skal kopieres over til malen og deretter lagres i mappen.

  4. Rad es la fila. Te dice que va desde la segunda fila hasta la última contenido (la fila 1 es la cabecera). For å kunne endre kolonnen .Range(“B”... por la columna que tu quieras. Si quieres la D sería .Range(“D”...).

  5. "For nRow = 2 To nLastRow" er den lik kolonne "B", så hvis jeg ville ha kolonne D ville jeg endret denne til 4?

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket *