Колачињата ни помогне да се испорача на нашите услуги. Преку употреба на нашите услуги, вие се согласувате со користење на cookies.
Совет: Други јазици се Google-преведени. Можете да ја посетите English верзија на оваа врска.
Логирај Се
x
or
x
x
Регистрирај се
x

or

Како да се поделат податоците во повеќе работни листови врз основа на колона во Excel?

Претпоставувајќи дека имате лист со огромни редови на податоци, и сега, треба да ги поделите податоците на повеќе работни листови врз основа на име колона (видете ја следнава слика од екранот), а имињата се внесуваат по случаен избор. Можеби прво можете да ги сортирате, а потоа да ги копирате и ставете еден по еден во други нови листови. Но, ова ќе ви треба трпеливост за да копирате и залепите повеќепати. Денес, ќе разговарам за некои брзи трикови за да ја решите оваа задача.

doc раздели податоци по колони 1

Разделување на податоци во повеќе работни листови врз основа на колона со VBA код

Разделување на податоци во повеќе работни листови врз основа на колона со Kutools за Excel


Распределба на податоци во повеќе работни листови врз основа на специфични колони или редови во работниот лист:

Ако сакате да поделите голем лист во повеќе листови врз основа на конкретни податоци за колони или броеви на редови, на Kutools за Excel's Сплит податоци функција може да ви помогне да ја решите оваа задача брзо и лесно.

doc раздели податоци по колони 6

Kutools за Excel: со повеќе од 200 практични додатоци на Excel, слободно може да се обиде без ограничување во 60 денови. Преземи и бесплатен пробен период Сега!


Разделување на податоци во повеќе работни листови врз основа на колона со VBA код


Ако сакате брзо и автоматски да ги поделите податоците врз основа на вредноста на колоната, следниот VBA код е добар избор. Те молам направете го следново:

1. Држете го ALT + F11 клучеви за отворање на Microsoft Visual Basic за апликации прозорец.

2. Кликнете Вметнете > Модули, и внесете го следниов код во Прозорецот за модули.

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. Потоа притиснете F5 клуч за да го извршите кодот, и се појави поле за брзо известување за да ве потсетам да го изберете редот на заглавието, видете го екранот:

doc раздели податоци по колони 7

4. И потоа, кликнете OK копчето, а во втората кутија за известување, изберете ги податоците за колоната на кои сакате да се поделите, видете на екранот:

doc раздели податоци по колони 8

5. Потоа кликнете OK, а сите податоци во активниот работен лист се поделени на повеќе работни листови според вредноста на колоната. И работните листови за поделба се именуваат со имињата на поделните ќелии. Погледнете го екранот:

doc раздели податоци по колони 2

Забелешка: Работните листови за поделба се поставени на крајот од работната книга во која е вклучен главниот лист.


Разделување на податоци во повеќе работни листови врз основа на колона со Kutools за Excel

Како почетник на Excel, овој долг VBA код е малку тежок за нас, а повеќето од нас дури и не знаат како да го модифицираат кодот како наша потреба.

Еве, јас ќе ве запознаам со мултифункционална алатка -Kutools за Excel, нејзиниот Сплит податоци алатка не само што може да ви помогне да ги поделите податоците во повеќе работни листови врз основа на колоната, туку исто така може да ги поделите податоците по број на броеви.

Kutools за Excel : со повеќе од 300 практични Excel додатоци, слободно да се обиде без ограничување во 60 дена.

Ако имате инсталирано Kutools за Excel, молам направете го следното:

1. Изберете опсег на податоци што сакате да ги поделите.

2. Кликнете Kutools More > Лист > Сплит податоци, видете го екранот:

doc раздели податоци по колони 3

3. Во Подели ги податоците во повеќе работни листови дијалог-кутија, треба да:

1). Изберете Специфична колона опција во Сплит врз основа на секција и изберете ја вредноста на колоната во која сакате да ги поделите податоците врз основа на паѓачката листа. (Ако вашите податоци имаат заглавија и сакате да ги вметнете во секој нов работен лист, ве молиме проверете Моите податоци имаат заглавија опција.)

2). Потоа можете да ги наведете имињата на работните листови подели, под Нов работен лист име секција, наведете ги правилата за имиња на работен лист од Правила паѓачкото мени, можете да додадете Префикс or суфиксот за имињата на листовите.

3). Кликнете на OK копче. Погледнете го екранот:

doc раздели податоци по колони 4

4. Сега податоците се поделени на повеќе работни листови во нова работна книга.

doc раздели податоци по колони 5

Кликни за да преземете Kutools за Excel и бесплатен пробен период Сега!


Разделување на податоци во повеќе работни листови врз основа на колона со Kutools за Excel

Kutools за Excel вклучува повеќе од 300 практични алатки Excel. Слободно да се обидете без ограничување во 60 денови. Преземете бесплатен пробен период сега!


Поврзани написи:

Како да се поделат податоците во повеќе работни листови според бројот на редови?



Препорачани алатки за продуктивност

Канцеларија јазиче

златна ѕвезда1 Донеси практични табулатори за Excel и друг канцелариски софтвер, исто како Хром, Firefox и нов Internet Explorer.

Kutools за Excel

златна ѕвезда1 Неверојатни! Зголемете ја вашата продуктивност во 5 минути. Не треба посебни вештини, освен два часа секој ден!

златна ѕвезда1 300 Нови функции за Excel, Направете Excel многу лесен и моќен:

  • Спој ќелии / редови / колони без губење на податоци.
  • Комбинирајте и консолидирајте повеќе листови и работни книги.
  • Споредете ги опсезите, копирајте ги повеќекратните граници, претворете го текстот во датум, единица и конверзија на валути.
  • Сметајте по бои, подредени страни, напредна сортирачка и супер филтер,
  • Повеќе Избери / Вметни / Избриши / Текст / Формат / Линк / Коментар / Учебник / Алатки за работни листови ...

Екран за Kutools за 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.
    Rohit · 2 years ago
    Hi,

    It works fine with a little tweaks to the code. But the data is getting populated without the headers. The code that i am using is:

    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 = 5
    Set ws = Sheets("Readiness Data")
    lr = ws.Cells(ws.Rows.Count, vcol).End(xlUp).Row
    title = "A1:AC1"
    titlerow = ws.Range(title).Cells(44).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.
    Rohit · 2 years ago
    Hi,

    Though the sheets are getting split, the data is reflecting only in the first tab(for the first row). Rest all tabs are blank.
  • To post as a guest, your comment is unpublished.
    Vy nguyen · 2 years ago
    I found the VBA super helpful for my problem.

    However, when I need to modify it, I am not sure how.

    The column I need to have the split is the 11th column, which I was able to modify.

    However, it is not splitting correctly because of the format of this column. The formatting needs to stay this way – customized. I was able to get the tabs to split based on the information in the column, but no data shows.

    currently the column format is 082816 (custom in excel), which means 08/28/16). I believe this is due to the code: Dim vcol As Integer. These are not integers so it is not finding anything hence no data is copied?

    How do i modify the 'dim vcol as integer' part so that it works with my formatting?
    Thank you
  • To post as a guest, your comment is unpublished.
    Sneha · 2 years ago
    Hey,
    thanks it worked for me.. It was a magic...

    My only requirement is on the other sheets, I want the Data to be displayed from A100 and not from first first cell i.e. A1.. Please can you tell the feild to be changed for it...

    Thank you
  • To post as a guest, your comment is unpublished.
    julius D · 2 years ago
    thanks you very much for your support
    the [quote][u]code work well [/u][/quote]