Excel İpuçları: Verileri sütun değerine göre birden çok çalışma sayfasına / çalışma kitabına bölme
When managing large datasets in Excel, it can be highly beneficial to split data into multiple worksheets based on specific column values. This method improves not only the organization of data but also enhances readability and facilitates easier data analysis.
Suppose you have a large sales record containing multiple entries such as the product name, the quantity sold of the first quarter. The goal is to split this data into separate worksheets based on each product name so that individual sales performance can be analyzed separately.
Split data into multiple worksheets based on column value
Split data into multiple workbooks based on column value with VBA code
Split data into multiple worksheets based on column value
Normally, you can sort the data list first, and then copy and paste them one by one into other new worksheets. But this will need your patience to copy and paste repeatedly. In this section, we will introduce two straightforward methods to efficiently tackle this task in Excel, saving you time and reducing the potential for errors.
Split data into multiple worksheets based on column value with VBA code
1. Tuşunu basılı tutun. ALT + F11 tuşlarını açmak için Uygulamalar için Microsoft Visual Basic pencere.
2. tık Ekle > modülve aşağıdaki kodu Modül Penceresine yapıştırın.
Sub Splitdatabycol()
'updateby Extendoffice
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
Dim xWS 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
Set xWS = Sheets.Add(after:=Worksheets(Worksheets.Count))
xWS.Name = myarr(i) & ""
Else
xWS.Move after:=Worksheets(Worksheets.Count)
End If
xWSTRg.Range(title).Copy
xWS.Paste Destination:=xWS.Range("A1")
ws.Range("A" & (titlerow + xTRg.Rows.Count) & ":A" & lr).EntireRow.Copy xWS.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. Ardından, F5 key to run the code, and a prompt box is popped out to remind you select the header row, and then, click OK. Ekran görüntüsüne bakın:
4. In the second prompt box, please select the column data that you want to split based on, then, click OK. Ekran görüntüsüne bakın:
5. All data in the active worksheet is divided into multiple worksheets based on the column values. The resulting worksheets are named according to the values in the split cells and are placed at the end of the workbook. See screenshot:
Split data into multiple worksheets based on column value with Kutools for Excel
Kutools for Excel brings smart feature – Veriyi Böl right into your Excel environment. Splitting data into multiple worksheets is no longer a challenge. Our intuitive tool automatically divides your dataset based on the chosen column value or rows count, ensuring that each piece of information is exactly where you need it. Say goodbye to the tedious task of manually organizing your spreadsheets and embrace a faster, error-free way to manage your data.
Kurduktan sonra Kutools for Excel, veri aralığını seçin ve ardından Kutools Artı > Veriyi Böl açmak için Split Data into multiple worksheets iletişim kutusu.
- seç Belirli sütun seçeneği Şuna göre böl section, and choose the column value which you want to split the data based on from the drop-down list.
- Verilerinizde başlıklar varsa ve bunları her yeni bölünmüş çalışma sayfasına eklemek istiyorsanız lütfen kontrol edin Verilerimin başlıkları var option. (You can specify the number of header rows based on your data. For example, if your data contains two headers, please type 2.)
- Ardından, bölünmüş çalışma sayfası adlarını belirtebilirsiniz. Yeni çalışma sayfası adı section, specify the worksheet names rule from the Rules drop down list, you can add the Önek or Sonek sayfa adları için de.
- Tıkla OK buton. Ekran görüntüsüne bakın:
Now, the data in the worksheet is split into multiple worksheets in a new workbook.
Split data into multiple workbooks based on column value with VBA code
Occasionally, rather than dividing data into multiple worksheets, it may be more beneficial to split the data into separate workbooks based on a key column. Here's a step-by-step guide on how to use VBA code to automate the process of splitting data into multiple workbooks based on a specific column value.
1. Tuşunu basılı tutun. ALT + F11 tuşlarını açmak için Uygulamalar için Microsoft Visual Basic pencere.
2. tık Ekle > modülve aşağıdaki kodu Modül Penceresi.
Sub SplitDataByColToWorkbooks()
' Updateby Extendoffice
Dim lr As Long
Dim ws As Worksheet
Dim vcol, i As Integer
Dim myarr As Variant
Dim title As String
Dim titlerow As Integer
Dim xTRg As Range
Dim xVRg As Range
Dim xWS As Workbook
Dim savePath As String
' Set the directory to save new workbooks
savePath = "C:\Users\AddinsVM001\Desktop\multiple files\" ' Modify this path as needed
Application.DisplayAlerts = False
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.Address(False, False)
titlerow = xTRg.Row
ws.Columns(vcol).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=ws.Cells(1, ws.Columns.Count), Unique:=True
myarr = Application.Transpose(ws.Cells(1, ws.Columns.Count).Resize(ws.Cells(ws.Rows.Count, ws.Columns.Count).End(xlUp).Row).Value)
ws.Cells(1, ws.Columns.Count).Resize(ws.Cells(ws.Rows.Count, ws.Columns.Count).End(xlUp).Row).ClearContents
For i = 2 To UBound(myarr)
Set xWS = Workbooks.Add
ws.Range(title).AutoFilter Field:=vcol, Criteria1:=myarr(i)
ws.Range("A" & titlerow & ":A" & lr).SpecialCells(xlCellTypeVisible).EntireRow.Copy
xWS.Sheets(1).Cells(1, 1).PasteSpecial Paste:=xlPasteAll
xWS.SaveAs Filename:=savePath & myarr(i) & ".xlsx"
xWS.Close SaveChanges:=False
Next i
ws.AutoFilterMode = False
Application.DisplayAlerts = True
ws.Activate
End Sub
3. Ardından, F5 key to run the code, and a prompt box is popped out to remind you select the header row, and then, click OK. Ekran görüntüsüne bakın:
4. In the second prompt box, please select the column data that you want to split based on, then, click OK. Ekran görüntüsüne bakın:
5. After splitting, all data in the active worksheet is divided into multiple workbooks based on the column values. All the split workbooks are saved into the folder you specified. See screenshot:
İlgili Makaleler:
- Verileri satır sayısına göre birden çok çalışma sayfasına bölün
- Geniş bir veri aralığını belirli bir satır sayısına göre birden fazla Excel çalışma sayfasına verimli bir şekilde bölmek, veri yönetimini kolaylaştırabilir. Örneğin, bir veri kümesini her 5 satırda bir birden fazla sayfaya bölmek onu daha yönetilebilir ve organize hale getirebilir. Bu kılavuz, bu görevi hızlı ve kolay bir şekilde gerçekleştirmek için iki pratik yöntem sunmaktadır.
- Anahtar sütunlara göre iki veya daha fazla tabloyu tek bir tablo halinde birleştirin
- Bir çalışma kitabında üç tablonuz olduğunu varsayarsak, şimdi, aşağıda gösterilen ekran görüntüsü gibi sonucu almak için bu tabloları karşılık gelen anahtar sütunlara göre tek bir tabloda birleştirmek istiyorsunuz. Bu çoğumuz için zahmetli bir görev olabilir, ancak lütfen endişelenmeyin, bu makale, bu sorunu çözmek için bazı yöntemler sunacağım.
- Split Text Strings by Delimiter into Multiple Rows
- Normalde, hücre içeriğini virgül, nokta, noktalı virgül, eğik çizgi vb. gibi belirli bir sınırlayıcıyla birden çok sütuna bölmek için Metni Sütuna özelliğini kullanabilirsiniz. Ancak bazen, ayrılmış hücre içeriğini birden çok satıra bölmeniz gerekebilir. ve aşağıda gösterilen ekran görüntüsü gibi diğer sütunlardaki verileri tekrarlayın. Excel'de bu görevi halletmek için herhangi bir iyi yolunuz var mı? Bu öğretici, Excel'de bu işi tamamlamak için bazı etkili yöntemleri tanıtacaktır.
- Split multiline cell contents into separated rows/columns
- Alt + Enter ile ayrılmış çok satırlı hücre içeriğiniz olduğunu ve şimdi çok satırlı içeriği ayrı satırlara veya sütunlara bölmeniz gerektiğini varsayalım, ne yapabilirsiniz? Bu makalede, çok satırlı hücre içeriklerini hızlı bir şekilde ayrılmış satırlara veya sütunlara nasıl böleceğinizi öğreneceksiniz.
En İyi Ofis Üretkenlik Araçları
Kutools for Excel ile Excel Becerilerinizi Güçlendirin ve Daha Önce Hiç Olmadığı Gibi Verimliliği Deneyimleyin. Kutools for Excel, Üretkenliği Artırmak ve Zamandan Tasarruf Etmek için 300'den Fazla Gelişmiş Özellik Sunar. En Çok İhtiyacınız Olan Özelliği Almak İçin Buraya Tıklayın...
Office Tab, Office'e Sekmeli Arayüz Getirir ve İşinizi Çok Daha Kolay Hale Getirir
- Word, Excel, PowerPoint'te sekmeli düzenlemeyi ve okumayı etkinleştirin, Publisher, Access, Visio ve Project.
- Yeni pencereler yerine aynı pencerenin yeni sekmelerinde birden çok belge açın ve oluşturun.
- Üretkenliğinizi% 50 artırır ve her gün sizin için yüzlerce fare tıklamasını azaltır!