Trong phân tích dữ liệu, đôi khi bạn cần chia nội dung của một bảng tính Excel thành nhiều sổ làm việc Excel khác nhau dựa trên một cột cụ thể. Bài viết này sẽ hướng dẫn bạn 2 cách nhanh chóng để thực hiện điều đó.
Nhiều người dùng thường xuyên cần chia một trang tính Excel có chứa các hàng dữ liệu khổng lồ thành nhiều sổ làm việc Excel riêng biệt dựa trên một cột cụ thể. Chẳng hạn, đây là bảng tính Excel mẫu của tôi. Tôi muốn chia dữ liệu của trang tính này dựa trên cột "Giá của một giấy phép (US$)" thành nhiều sổ làm việc.

Nói chung, bạn sẽ có xu hướng sử dụng Phương pháp 1 sau đây để lọc và sao chép dữ liệu theo cách thủ công. Tuy nhiên, sẽ khá tẻ nhạt và ngu ngốc nếu có quá nhiều tùy chọn bộ lọc. Do đó, ở đây chúng tôi cũng chỉ ra một cách tiện lợi hơn nhiều – Phương pháp 2, sử dụng VBA. Bây giờ, hãy đọc để có được chúng một cách chi tiết.
Phương pháp 1: Sao chép nội dung vào các sổ làm việc Excel riêng biệt sau khi lọc
- Đầu tiên, hãy chọn một ô trong cột cụ thể, chẳng hạn như “Ô B1” trong ví dụ của riêng tôi.
- Sau đó, chuyển sang tab “Dữ liệu” và nhấp vào nút “Bộ lọc”.
- Tiếp theo, nhấp vào nút "mũi tên xuống" trong tiêu đề cột để hiển thị danh sách các lựa chọn bộ lọc.
- Bây giờ, hãy bỏ chọn tùy chọn “(Select All)”.
- Sau đó, bạn có thể chọn một lựa chọn bộ lọc, chẳng hạn như “29.95” trong ví dụ của tôi và nhấp vào “OK”.
- Đồng thời, chỉ dữ liệu có giá trị trong Cột B là “29.95” sẽ được để lại.
- Sau đó, sao chép dữ liệu đã lọc và dán chúng vào sổ làm việc Excel mới.
- Sau đó, sử dụng cùng một cách để tách dữ liệu khác để tách sổ làm việc Excel.
Phương pháp 2: Chia hàng loạt nội dung thành nhiều sổ làm việc Excel thông qua VBA
- Trước tiên, hãy đảm bảo rằng trang tính cụ thể được mở.
- Tiếp theo, khởi chạy trình soạn thảo VBA theo “Cách chạy mã VBA trong Excel của bạn".
- Sau đó, đặt đoạn mã sau vào dự án “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
- Sau đó, nhấp vào biểu tượng “Run” trên thanh công cụ hoặc nhấn nút phím “F5”.
- Khi macro kết thúc, các sổ làm việc Excel riêng biệt sẽ được tạo với dữ liệu đã tách từ trang tính Excel nguồn.
- Mỗi sổ làm việc sẽ trông giống như ảnh chụp màn hình sau đây.
sự so sánh
| Ưu điểm | Nhược điểm | |
| Phương pháp 1 | 1. Dễ vận hành cho tất cả người dùng Excel | Rắc rối nếu có quá nhiều lựa chọn bộ lọc |
| 2. Nhanh chóng nếu có ít lựa chọn bộ lọc | ||
| Phương pháp 2 | Hiệu quả hơn nhiều so với Phương pháp 1 bất kể số lượng lựa chọn bộ lọc | Hơi khó thao tác với người mới sử dụng VBA |
Ngăn ngừa mất dữ liệu Excel
Mặc dù MS Excel ngày càng trở nên tiên tiến và phức tạp hơn, nhưng đôi khi nó vẫn có xu hướng gặp sự cố do các yếu tố khác, chẳng hạn như phần bổ trợ độc hại của bên thứ ba hoặc lỗi của con người, v.v. Vì sự cố Excel có thể trực tiếp dẫn đến Excel bị hỏng, để tránh mất dữ liệu Excel, bạn phải thường xuyên sao lưu các tệp Excel của mình. Nếu không, bạn cần áp dụng một công cụ sửa chữa Excel, chẳng hạn như DataNumen Excel Repair để sửa các tệp Excel bị hỏng.
Giới thiệu tác giả:
Shirley Zhang là một chuyên gia phục hồi dữ liệu trong DataNumen, Inc., công ty hàng đầu thế giới về công nghệ khôi phục dữ liệu, bao gồm SQL Server sửa và các sản phẩm phần mềm sửa chữa triển vọng. Để biết thêm thông tin, hãy truy cập www.datanumennăm






