Cookies na ndihmojnë të ofruar shërbimet tona. Duke përdorur shërbimet tona, ju pranoni përdorimin e cookies.
Këshillë: Gjuhët tjera janë të përkthyera në Google. Ju mund të vizitoni English versionin e kësaj lidhjeje.
Identifikohu
x
or
x
x
Regjistrohu
x

or

Si të ndani të dhënat në fletë pune të shumta bazuar në kolonën në Excel?

Duke supozuar që të keni një fletë pune me rreshta të mëdha të të dhënave, dhe tani, ju duhet të ndani të dhënat në fletë pune të shumta bazuar në emër (shihni screenshot në vijim), dhe emrat futen në mënyrë të rastësishme. Ndoshta ju mund t'i rendisni ato së pari, dhe pastaj kopjoni dhe ngjisni një nga një në fletë pune të tjera të reja. Por kjo do të ketë nevojë për durimin tuaj për të kopjuar dhe ngjitur në mënyrë të përsëritur. Sot, unë do të flas për disa truket e shpejtë për të zgjidhur këtë detyrë.

doc ndarë të dhënat nga kolonat 1

Dhënia e të dhënave në fletë pune të shumta bazuar në kolonën me kodin VBA

Dhënia e të dhënave në fletë pune të shumta bazuar në kolonën me Kutools për Excel


Të dhënat e ndara në fletë pune të shumta të bazuara në kolonën ose rreshtat e veçanta llogariten në fletë pune:

Nëse dëshironi të ndani një fletë pune të madh në fletë të shumëfishta në bazë të të dhënave specifike të kolonës ose numërimit të rreshtave, Kutools për Excel's Të dhëna të ndara funksion mund t'ju ndihmojë të zgjidhni këtë detyrë shpejt dhe me lehtësi.

doc ndarë të dhënat nga kolonat 6

Kutools për Excel: me më shumë se shtojca të dobishme të 200 Excel, të lirë të provohen pa asnjë kufizim në ditët e 60. Shkarko dhe gjykim falas tani!


Dhënia e të dhënave në fletë pune të shumta bazuar në kolonën me kodin VBA


Nëse doni të ndani të dhënat në bazë të vlerës së kolonës shpejt dhe automatikisht, kodi i mëposhtëm VBA është një zgjedhje e mirë. Ju lutem bëni si ky:

1. Mbajeni poshtë ALT + F11 çelësat për të hapur Microsoft Visual Basic për Aplikime dritare.

2. Click Fut > Modulet, dhe ngjisni kodin e mëposhtëm në dritaren e Modulit.

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("Master sheet")        
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

shënim: Në kodin e mësipërm:

  • vcol = 1 , Numri 1 është numri i kolonës që dëshironi të ndani të dhënat në bazë.
  • Set ws = Sheets ("Fletë Master"), Fletë Master është emri i fletës që dëshironi të aplikoni këtë kod.
  • titulli = "A1: C1" , A1: C1 është varg i titullit.

Të gjithë ata janë variabla, ju mund t'i ndryshoni ato si nevojë tuaj.

3. Pastaj shtypni F5 kyç për të drejtuar kodin, të gjitha të dhënat në fletën e punës aktive ndahen në fletë pune të shumta sipas vlerës së kolonës. Dhe fletët e punës të ndara janë emëruar me emrat e qelizave të ndarë. Shih screenshot:

doc ndarë të dhënat nga kolonat 2

shënim: Fletët e ndarë janë vendosur në fund të librit të punës ku futet fleta e punës master.


Dhënia e të dhënave në fletë pune të shumta bazuar në kolonën me Kutools për Excel

Si një fillestar Excel, ky kod i gjatë VBA është disi i vështirë për ne, dhe shumica prej nesh madje nuk e dimë se si ta modifikojmë kodin si nevojën tonë.

Këtu, unë do t'ju prezantoj një mjet multifunksional -Kutools për Excel, e saj Të dhëna të ndara shërbimeve jo vetëm që mund t'ju ndihmojnë të ndani të dhënat në fletë pune të shumëfishta bazuar në kolonën, por gjithashtu mund të ndani të dhënat me numërimin e rreshtave.

Kutools për Excel : me më shumë se 300 shtojca të dobishme të Excel-it, të lirë të provohen pa asnjë kufizim në ditët e 60.

Nëse keni instaluar Kutools për Excel, ju lutem bëni si më poshtë:

1. Zgjidh gamën e të dhënave që dëshironi të ndani.

2. Click Kutools Më shumë > Pune > Të dhëna të ndara, shihni screenshot:

doc ndarë të dhënat nga kolonat 3

3. në Dhënia e të dhënave në fletët e punës të shumëfishta kutinë e dialogut, ju duhet të:

1). zgjedh Kolona specifike opsion në Split bazuar në seksionin dhe zgjidhni vlerën e kolonës që dëshironi të ndani të dhënat në bazë të listës së zbritjes. (Nëse të dhënat tuaja kanë kokë dhe doni të futni ato në çdo fletë pune të ndarë, ju lutemi kontrolloni Të dhënat e mia kanë kokë opsion.)

2). Pastaj ju mund të specifikoni emrat e fletëve të punës të ndarë, nën Emri i ri i fletëve të punës seksion, specifikoni emrat e emrave të punës për rregullat nga Rregullat drop down list, ju mund të shtoni parashtesë or prapashtesë për emrat e fletëve gjithashtu.

3). Kliko në OK button. Shih screenshot:

doc ndarë të dhënat nga kolonat 4

4. Tani të dhënat janë të ndara në fletë pune të shumta në një libër të ri pune.

doc ndarë të dhënat nga kolonat 5

Kliko për të shkarkuar Kutools për Excel dhe gjyqi falas Tani!


Dhënia e të dhënave në fletë pune të shumta bazuar në kolonën me Kutools për Excel

Kutools për Excel përfshin më shumë se mjetet e përdorshme të 300 Excel. Falas për të provuar pa asnjë kufizim në ditët e 60. Shkarko gjyqin falas tani!


Artikuj të ngjashëm:

Si të ndahen të dhënat në fletë pune të shumta nga radhët e numërimit?



Mjetet e rekomanduara të produktivitetit

Tab Zyra

ari star1 Sillni skeda të dobishme në Excel dhe në softuer të tjerë të Zyrës, ashtu si Chrome, Firefox dhe Internet Explorer i ri.

Kutools për Excel

ari star1 Amazing! Rrit produktivitetin tuaj në minuta 5. Nuk keni nevojë për ndonjë aftësi të veçantë, përveç dy orë çdo ditë!

ari star1 300 karakteristika të reja për Excel, Bëni Excel shumë lehtë dhe të fuqishëm:

  • Merge Cell / Rows / Columns pa humbur të dhënat.
  • Kombinoje dhe konsolido fletët e shumëfishta dhe librat e punës.
  • Krahasoni sferat, kopjoni sfera të shumëfishta, konverto tekstin në datën, njësinë dhe konvertimin e monedhës.
  • Numëroni sipas Colors, Subtotals Paging, Advanced Sort dhe Super Filter,
  • Më shumë Zgjidh / Fut / Fshi / Tekst / Format / Lidhje / Komente / Librat e punës / Materialet e punës ...

Kutia e kutisë së Kutools për Excel

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.
    Jason · 1 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?
  • To post as a guest, your comment is unpublished.
    jose · 1 months ago
    can someone help please im using this but i keep getting to many columns. i have to keep deleting rows every time i use this.

    This is what im using


    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:AN1"
    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.
    avinash · 1 months ago
    Thanks for VBA, it works great. In addition to that question, I have column which is dependent. So when i select some value my column values get changed hence I need vba solution to replace earlier split worksheet to replace with new value of columns. Can anyone help me out.?

    Thanks in advance
  • To post as a guest, your comment is unpublished.
    JP Tontegode · 1 months ago
    Is there a way to have the macro create a separate spreadsheet for each new tab instead of just adding a tab into the current worksheet? Thanks!
  • To post as a guest, your comment is unpublished.
    Sebastian · 1 months ago
    Effectively, this code does work great. I wrote an additional code so that I could get subtotal on certain columns but it has not worked great. So I tried running the subtotals from the master list, but afterwards when I use this macro it create a whole new tab for the Grand total row. So I am getting two two tabs per split. the first one is fine because it splits with the grand totals, but then creates a second one with just the grand total row. Any help as to how to modify this.
    This is the code that I am currently using:
    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 = 3
    Set ws = Sheets("Master sheet")
    lr = ws.Cells(ws.Rows.Count, vcol).End(xlUp).Row
    title = "A1:R1"
    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