Vihje: Muut kielet ovat Google-käännettyjä. Voit vierailla English tämän linkin versio.
Kirjaudu
x
or
x
x
Rekis.
x

or

Kuinka jakaa tiedot useisiin laskentataulukoihin, jotka perustuvat Excel-sarakkeeseen?

Oletetaan, että sinulla on suuri taulukkolaskenta, ja nyt sinun on jaettava tiedot useisiin laskentataulukoihin, jotka perustuvat Nimi (katso seuraava kuvakaappaus), ja nimet syötetään satunnaisesti. Ehkä voit lajitella ne ensin ja kopioida ja liittää ne yksitellen muihin uusiin työtehtäviin. Mutta tämä vaatii kärsivällisyytesi kopioimaan ja liittämään toistuvasti. Tänään puhun joistakin nopeista temppeleistä tämän tehtävän ratkaisemiseksi.

doc jakaa tiedot sarakkeittain 1

Jaa tiedot useisiin laskentataulukoihin, jotka perustuvat sarakkeeseen, jossa on VBA-koodi

Jaa dataa useisiin Excel-kutsuihin perustuviin sarakkeisiin perustuvista laskentataulukoista


Jakautuvat tiedot useisiin laskentataulukkoon perustuviin tiettyihin sarakkeisiin tai riveihin perustuviin laskentataulukkoihin:

Jos haluat jakaa suuren laskentataulukon useisiin arkeihin tiettyjen sarakkeiden tietojen tai rivien lukumäärän perusteella, Kutools for Excel's Jaa tiedot ominaisuus voi auttaa sinua ratkaisemaan tämän tehtävän nopeasti ja helposti.

doc jakaa tiedot sarakkeittain 6

Kutools for Excel: enemmän kuin 200 kätevä Excel-lisäosat, voit kokeilla rajoituksia 60-päivinä. Lataa ja kokeile nyt!


Jaa tiedot useisiin laskentataulukoihin, jotka perustuvat sarakkeeseen, jossa on VBA-koodi


Jos haluat jakaa tiedot sarakkeen arvoon nopeasti ja automaattisesti, seuraava VBA-koodi on hyvä valinta. Tee näin:

1. Pidä alhaalla ALT + F11 avaimet avaamaan Microsoft Visual Basic for Applications ikkunassa.

2. Klikkaus liite > Moduulit, ja liitä seuraava koodi Moduuli-ikkunaan.

Sub Splitdatabycol()
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
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
Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = myarr(i) & ""
Else
Sheets(myarr(i) & "").Move after:=Worksheets(Worksheets.Count)
End If
xWSTRg.Range(title).Copy
Sheets(myarr(i) & "").Paste Destination:=Sheets(myarr(i) & "").Range("A1")
ws.Range("A" & (titlerow + xTRg.Rows.Count) & ":A" & lr).EntireRow.Copy Sheets(myarr(i) & "").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. Paina sitten F5 -näppäintä koodin suorittamiseksi, ja kehoteikkuna ilmestyy muistuttamaan, että olet valinnut otsikkorivin, katso kuvakaappausta:

doc jakaa tiedot sarakkeittain 7

4. Napsauta sitten OK -näppäintä, ja toisessa kehotteessa valitse sarakkeen tiedot, jotka haluat jakaa, katso kuvakaappaus:

doc jakaa tiedot sarakkeittain 8

5. Napsauta sitten OKja kaikki aktiivisen laskentataulukon tiedot jaetaan useisiin työarkkeihin sarakkeen arvon mukaan. Ja jaetut laskentataulukot on nimetty jaettujen solujen nimillä. Katso kuvakaappaus:

doc jakaa tiedot sarakkeittain 2

Huomautuksia: Jaetut laskentataulukot sijoitetaan työkirjan loppuun, jossa päätyöarkki on.


Jaa dataa useisiin Excel-kutsuihin perustuviin sarakkeisiin perustuvista laskentataulukoista

Excel-aloittelijaksi tämä pitkä VBA-koodi on meille melko vaikea, ja useimmat meistä eivät edes tiedä, miten koodia muutettaisiin tarvitsemme.

Tässä esitän sinulle monitoimisen työkalun -Kutools for Excel, sen Jaa tiedot ei vain auttaa sinua jakamaan tietoja useisiin laskentataulukoihin, jotka perustuvat sarakkeeseen, mutta voivat myös jakaa tietoja rivien lukumäärän mukaan.

Kutools for Excel : enemmän kuin 300 kätevä Excel-lisäosat, voit kokeilla rajoituksia 60-päivinä.

Jos olet asentanut Kutools for Excel, tee näin:

1. Valitse halutun tiedon alue.

2. Klikkaus Kutools More > Taulukko > Jaa tiedot, katso kuvakaappaus:

doc jakaa tiedot sarakkeittain 3

3. Vuonna Jaa tiedot useisiin laskentataulukkoihin valintaikkunassa sinun on

1). valita Tietty sarake vaihtoehto Split perustuu ja valitse sarakkeiden arvo, jonka haluat jakaa tiedot perustuen pudotusluetteloon. (Jos tietojasi on otsakkeita ja haluat lisätä ne kaikkiin uusiin jaettuun laskentataulukkoon, tarkista Omat tiedot ovat otsakkeita vaihtoehto.)

2). Tällöin voit määrittää haluttujen laskentataulukkojen nimet Uusi laskentataulukko -osassa, määritä laskentataulukon nimiä koskevat säännöt Säännöt avattava luettelo, voit lisätä Etuliite or jälkiliite myös arkin nimiä varten.

3). Klikkaa OK painiketta. Katso kuvakaappaus:

doc jakaa tiedot sarakkeittain 4

4. Nyt tiedot jaetaan useisiin laskentataulukoihin uudessa työkirjassa.

doc jakaa tiedot sarakkeittain 5

Lataa Kutools for Excel ja ilmainen kokeiluversio nyt!


Jaa dataa useisiin Excel-kutsuihin perustuviin sarakkeisiin perustuvista laskentataulukoista

Kutools for Excel sisältää enemmän kuin 300 käteviä Excel-työkaluja. Vapaata yrittämistä ilman rajoituksia 60 päivinä. Lataa ilmainen kokeiluversio nyt!


Aiheeseen liittyvä artikkeli:

Kuinka jakaa tiedot useisiin laskentataulukkoihin rivien mukaan?



Suositeltavat tuottavuustyökalut

Office-välilehti

kulta star1 Tuo kätevät välilehdet Exceliin ja muihin Office-ohjelmistoihin, kuten Chrome, Firefox ja uusi Internet Explorer.

Kutools for Excel

kulta star1 Hämmästyttävä! Lisää tuottavuutta 5 minuutissa. Älä tarvitse mitään erikoistaitoja, paitsi kaksi tuntia päivässä!

kulta star1 300 Excelin uudet ominaisuudet, Excelin ansiosta helppo ja tehokas:

  • Yhdistä solu / rivit / sarakkeet ilman tietojen menettämistä.
  • Yhdistä ja yhdistä useita arkkeja ja työkirjoja.
  • Vertaa alueita, kopioi useita alueita, muuntaa tekstin päivämäärän, yksikön ja valuutan muuntamisen.
  • Laske värit, hakulausekartat, Advanced Sort ja Super Filter,
  • Lisää Valitse / Lisää / Poista / Teksti / Muoto / Link / Kommentti / Työkirjat / Työtaso Työkalut ...

Kutools for Excel -näyttö

Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Katharina · 14 days ago
    Great Script, thanks! What do I have to do to set the header row range and column to use for grouping/splitting within the script? I know it is more elegant to use selectable parameters but for my use case it is always the same. As I do know nothing about VBA, any little hint is appreciated :-) Best, Katharina
  • To post as a guest, your comment is unpublished.
    daiana · 18 days ago
    It doesn't work with 120000 rows. Is there any way to make it work?
  • To post as a guest, your comment is unpublished.
    Radoslav · 21 days ago
    Perfect!!! Works and refer to all my demands. Tnx for that source code.
  • To post as a guest, your comment is unpublished.
    Rudi Miller · 28 days ago
    Sub parse_data()
    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
    vcol = 1
    Set ws = Sheets("Sheet1")
    lr = ws.Cells(ws.Rows.Count, vcol).End(xlUp).Row
    title = "A1:C1"
    titlerow = ws.Range(title).Cells(1).Row
    icol = ws.Columns.Count
    ws.Cells(1, icol) = "Unique"
    For i = 2 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
    Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = myarr(i) & ""
    Else
    Sheets(myarr(i) & "").Move after:=Worksheets(Worksheets.Count)
    End If
    ws.Range("A" & titlerow & ":A" & lr).EntireRow.Copy Sheets(myarr(i) & "").Range("A1")
    Sheets(myarr(i) & "").Columns.AutoFit
    Next
    ws.AutoFilterMode = False
    ws.Activate
    End Sub
  • To post as a guest, your comment is unpublished.
    Jason · 2 months ago
    This formula is great, works perfectly for me.
    I want to split out data based on a location, which is in column 1. Which this does.
    However, is it possible to also split out based on column 2, for example. Built and Not Built. So a secondary condition also?