Kadangkala, dalam analisis data, anda mungkin perlu memisahkan kandungan lembaran kerja Excel kepada berbilang buku kerja Excel mengikut lajur tertentu. Sekarang, dalam catatan ini, kami akan mengajar anda 2 cara cepat untuk mendapatkannya.
Ramai pengguna sering kali perlu membelah lembaran kerja Excel yang mengandungi baris data yang besar ke dalam beberapa buku kerja Excel yang berasingan berdasarkan lajur tertentu. Contohnya, inilah contoh lembaran kerja Excel saya. Saya ingin membahagikan data helaian ini berdasarkan lajur "Harga lesen tunggal (US $)" menjadi beberapa buku kerja.

Secara amnya, anda cenderung menggunakan Kaedah 1 berikut untuk menyaring dan menyalin data secara manual. Tetapi, akan menjadi sangat membosankan dan bodoh jika terdapat terlalu banyak pilihan penapis. Oleh itu, di sini kami juga menunjukkan cara yang lebih mudah - Kaedah 2, yang menggunakan VBA. Sekarang, baca untuk mendapatkannya secara terperinci.
Kaedah 1: Salin Kandungan untuk Mengasingkan Buku Kerja Excel selepas Penapis
- Pada mulanya, pilih sel di lajur tertentu, seperti "Sel B1" dalam contoh saya sendiri.
- Kemudian, beralih ke tab "Data" dan klik butang "Tapis".
- Seterusnya, klik butang "panah bawah" di tajuk lajur untuk memaparkan senarai pilihan penapis.
- Sekarang, hapus centang pilihan "(Pilih Semua)".
- Selepas itu, anda boleh memilih satu pilihan penapis, seperti "29.95" dalam contoh saya, dan klik "OK".
- Sekali gus, hanya data, yang nilainya di Lajur B adalah "29.95", akan tersisa.
- Kemudian, salin data yang ditapis dan tampalkannya ke dalam buku kerja Excel baru.
- Kemudian, gunakan cara yang sama untuk memisahkan data lain untuk memisahkan buku kerja Excel.
Kaedah 2: Isi Batch Split ke dalam Beberapa Buku Kerja Excel melalui VBA
- Pertama, pastikan lembaran kerja tertentu dibuka.
- Seterusnya, lancarkan editor VBA mengikut “Cara Menjalankan Kod VBA di Excel Anda".
- Kemudian, masukkan kod berikut ke dalam projek "ThisWorkbook".
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
- Setelah itu, klik ikon "Jalankan" di bar alat atau tekan butang "F5".
- Apabila makro selesai, buku kerja Excel yang terpisah akan dibuat dengan data perpecahan dari lembaran kerja Excel sumber.
- Setiap buku kerja akan kelihatan seperti tangkapan skrin berikut.
perbandingan
| kelebihan | Kekurangan | |
| Kaedah 1 | 1. Mudah dikendalikan untuk semua pengguna Excel | Menyusahkan jika terdapat terlalu banyak pilihan penapis |
| 2. Cepat jika terdapat beberapa pilihan penapis | ||
| Kaedah 2 | Jauh lebih cekap daripada Kaedah 1 tidak kira jumlah pilihan penapis | Agak sukar untuk dikendalikan untuk pemula VBA |
Mencegah Kehilangan Data Excel
Walaupun MS Excel semakin maju dan canggih, ia tetap cenderung merosot dari semasa ke semasa kerana pelbagai faktor, seperti tambahan pihak ketiga yang berniat jahat atau kesalahan manusia dan sebagainya. Oleh kerana kemalangan Excel secara langsung boleh menyebabkan Rasuah Excel, untuk mengelakkan kehilangan data Excel, anda harus membuat sandaran fail Excel anda secara berkala. Jika tidak, anda perlu menggunakan alat pembaikan Excel, seperti DataNumen Excel Repair untuk memperbaiki fail Excel yang rosak.
Pengenalan Pengarang:
Shirley Zhang adalah pakar pemulihan data di DataNumen, Inc., yang merupakan pemimpin dunia dalam teknologi pemulihan data, termasuk SQL Server pembaikan dan produk perisian pembaikan prospek. Untuk maklumat lebih lanjut, lawati www.datanumen.com






