Veri analizinde bazen, bir Excel çalışma sayfasının içeriğini belirli bir sütuna göre birden fazla Excel çalışma kitabına bölmeniz gerekebilir. Bu yazıda, bunu yapmanın 2 hızlı yolunu öğreteceğiz.
Çoğu kullanıcının, çok büyük veri satırları içeren bir Excel çalışma sayfasını, belirli bir sütuna dayalı olarak birden çok ayrı Excel çalışma kitabına bölmesi gerekir. Örneğin, işte benim örnek Excel çalışma sayfam. Bu sayfanın verilerini "Tek lisans fiyatı (US$)" sütununa göre birden fazla çalışma kitabına bölmek istiyorum.

Genel olarak, verileri el ile filtrelemek ve kopyalamak için aşağıdaki Yöntem 1'i kullanma eğiliminde olacaksınız. Ancak, çok fazla filtre seçeneği varsa, oldukça sıkıcı ve aptalca olacaktır. Bu nedenle, burada ayrıca çok daha uygun bir yol gösteriyoruz - VBA kullanan Yöntem 2. Şimdi, onları ayrıntılı olarak almak için okumaya devam edin.
Yöntem 1: Filtreden Sonra İçeriği Ayrı Excel Çalışma Kitaplarına Kopyalayın
- İlk başta, kendi örneğimdeki "B1 Hücresi" gibi belirli bir sütunda bir hücre seçin.
- Ardından, “Veri” sekmesine dönün ve “Filtrele” düğmesine tıklayın.
- Ardından, filtre seçeneklerinin bir listesini görüntülemek için sütun başlığındaki "aşağı ok" düğmesini tıklayın.
- Şimdi, “(Tümünü Seç)” seçeneğinin işaretini kaldırın.
- Bundan sonra, örneğimdeki "29.95" gibi bir filtre seçeneği seçip "Tamam" ı tıklayabilirsiniz.
- Bir anda sadece Sütun B'deki değeri “29.95” olan veriler kalacaktır.
- Ardından, filtre uygulanmış verileri kopyalayın ve yeni bir Excel çalışma kitabına yapıştırın.
- Daha sonra, Excel çalışma kitaplarını ayırmak için diğer verileri bölmek için aynı yolu kullanın.
Yöntem 2: Bölünmüş İçeriği VBA aracılığıyla Birden Çok Excel Çalışma Kitabına Toplu İşleyin
- İlk etapta, belirli çalışma sayfasının açıldığından emin olun.
- Ardından, “ göre VBA editörünü başlatın.Excel'inizde VBA Kodunu Nasıl Çalıştırırsınız?".
- Daha sonra “ThisWorkbook” projesine aşağıdaki kodu ekleyin.
Sub SplitSheetDataIntoMultipleWorkbooksBasedOnSpecificColumn()
Dim objWorksheet As Excel.Worksheet
Dim nLastRow, nRow, nNextRow As Integer
Dim strColumnValue As String
Dim objDictionary As Object
Dim varColumnValues As Variant
Dim varColumnValue As Variant
Dim objExcelWorkbook As Excel.Workbook
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 To nLastRow
'Get the specific Column
'Here my instance is "B" column
'You can change it to your case
strColumnValue = objWorksheet.Range("B" & nRow).Value
If objDictionary.Exists(strColumnValue) = False Then
objDictionary.Add strColumnValue, 1
End If
Next
varColumnValues = objDictionary.Keys
For i = LBound(varColumnValues) To UBound(varColumnValues)
varColumnValue = varColumnValues(i)
'Create a new Excel workbook
Set objExcelWorkbook = Excel.Application.Workbooks.Add
Set objSheet = objExcelWorkbook.Sheets(1)
objSheet.Name = objWorksheet.Name
objWorksheet.Rows(1).EntireRow.Copy
objSheet.Activate
objSheet.Range("A1").Select
objSheet.Paste
For nRow = 2 To nLastRow
If CStr(objWorksheet.Range("B" & nRow).Value) = CStr(varColumnValue) Then
'Copy data with the same column "B" value to new workbook
objWorksheet.Rows(nRow).EntireRow.Copy
nNextRow = objSheet.Range("A" & objWorksheet.Rows.Count).End(xlUp).Row + 1
objSheet.Range("A" & nNextRow).Select
objSheet.Paste
objSheet.Columns("A:B").AutoFit
End If
Next
Next
End Sub
- Ardından araç çubuğundaki “Çalıştır” simgesine tıklayın veya “F5” tuşuna basın.
- Makro tamamlandığında, kaynak Excel çalışma sayfasındaki bölünmüş verilerle ayrı Excel çalışma kitapları oluşturulacaktır.
- Her çalışma kitabı aşağıdaki ekran görüntüsü gibi görünecektir.
karşılaştırma
| Avantajlar | Dezavantajlar | |
| Yöntem 1 | 1. Tüm Excel kullanıcıları için kullanımı kolay | Çok fazla filtre seçeneği varsa zahmetli |
| 2. Birkaç filtre seçeneği varsa hızlı | ||
| Yöntem 2 | Filtre seçeneklerinin miktarı ne olursa olsun Yöntem 1'den çok daha verimli | VBA'ya yeni başlayanlar için çalıştırması biraz zor |
Excel Veri Kaybını Önleyin
MS Excel her geçen gün daha gelişmiş ve sofistike hale gelse de, kötü amaçlı üçüncü taraf eklentileri veya insan hataları vb. gibi çeşitli faktörler nedeniyle zaman zaman çökme eğilimindedir. Excel çökmesi doğrudan yol açabileceğinden Excel bozulması, Excel veri kaybını önlemek için, Excel dosyalarınızı düzenli olarak yedeklemeniz gerekir. Aksi takdirde, aşağıdaki gibi bir Excel onarım aracı uygulamanız gerekir. DataNumen Excel Repair bozuk Excel dosyalarını düzeltmek için.
Yazar Tanıtımı:
Shirley Zhang, bir veri kurtarma uzmanıdır. DataNumendahil olmak üzere veri kurtarma teknolojilerinde dünya lideri olan , Inc. SQL Server onarım ve görünüm onarım yazılım ürünleri. Daha fazla bilgi için ziyaret edin www.datanumen.com






