Nếu bạn đang tìm kiếm một số cách dễ dàng nhất để tách trang tính Excel thành nhiều trang tính dựa trên giá trị cột, thì bạn sẽ thấy bài viết này hữu ích.
Đôi khi cần thiết phải tách một tập dữ liệu lớn dựa trên một cột và làm việc trên nhiều trang tính sau khi tách trang tính chính. Để biết các cách làm việc này hiệu quả, hãy cùng tìm hiểu bài viết.
Tải xuống tệp thực hành
5 cách tách trang tính Excel thành nhiều trang tính dựa trên giá trị cột
Tôi sẽ sử dụng bảng dữ liệu sau chứa kết quả của các sinh viên khác nhau tại một trường cao đẳng. Tôi sẽ tách trang tính này thành ba trang tính dựa trên cột Tên sinh viên cho ba sinh viên.
Để làm điều này, tôi đang sử dụng phiên bản Microsoft Excel 365, nhưng bạn có thể sử dụng bất kỳ phiên bản nào khác theo sự thuận tiện của bạn.

Phương pháp-1: Hàm FILTER để tách trang tính thành nhiều trang tính dựa trên giá trị cột
Nếu bạn muốn tách trang tính dữ liệu thành nhiều trang tính dựa trên cột Tên sinh viên, thì bạn có thể sử dụng hàm FILTER. Ở đây, tôi sẽ tách trang tính sau thành ba trang tính chứa dữ liệu cho Daniel Defoe, Henry Jackson, và Donald Paul tương ứng.

Bước-01:
➤Tạo ba trang tính đặt tên theo ba tên sinh viên.
➤Chọn một ô, như B3 trong trang tính cho sinh viên Daniel Defoe.

➤Nhập công thức sau
=FILTER(Filter!B5:D16,Filter!B5:B16="Daniel Defoe")Filter!B5:D16 là phạm vi dữ liệu không có tiêu đề trong trang tính chính được đặt tên là Filter và Filter!B5:B16 là phạm vi Tên sinh viên trong trang tính chính và nó sẽ bằng "Daniel Defoe".

➤Nhấn ENTER
Bây giờ, bạn sẽ nhận được dữ liệu cho sinh viên Daniel Defoe trong trang tính cho sinh viên này.

➤Hãy nhập tên tiêu đề trên tất cả các cột và tạo đường viền cho bảng dữ liệu này.

Bước-02:
Sau khi làm theo Bước-01 của phương pháp này cho hai trang tính khác cho sinh viên Henry Jackson và Donald Paul, bạn sẽ nhận được hai bảng sau trong các trang tính tương ứng của họ.


Đọc thêm: Excel VBA: Tách trang tính thành nhiều trang tính dựa trên hàng
Phương pháp-2: Bảng Pivot để tách trang tính thành nhiều trang tính dựa trên giá trị cột
Bạn có thể tách trang tính sau thành ba trang tính cho ba sinh viên dựa trên cột Tên sinh viên bằng cách sử dụng Bảng Pivot.

Bước-01:
➤Đi đến Insert Tab>>PivotTable Tùy chọn

Sau đó hộp thoại PivotTable from table or range sẽ xuất hiện.
➤Chọn Table/Range
➤Nhấp vào New Worksheet (đây là thói quen tốt để đặt Bảng Pivot vào trang tính mới)
➤Nhấn OK

Sau đó, một trang tính mới sẽ mở ra có hai phần; PivotTable1 và PivotTable Fields.

➤Kéo thả Tên sinh viên vào khu vực Filters (bất kỳ cột nào dựa trên đó bạn muốn tách trang tính chính thành nhiều trang tính) và Môn học và Điểm vào khu vực Rows.

➤Đi đến Design Tab>>Layout Group>>Report Layout Dropdown>>Show in Outline Form Tùy chọn

➤Làm theo Design Tab>>Layout Group>>Grand Totals Dropdown>>Off for Rows and Columns Tùy chọn.

➤Sau đó đi đến PivotTable Analyze Tab>>PivotTable Group>>Options Dropdown>>Show Report Filter Pages Tùy chọn.

Sau đó Show Report Filter Pages Wizard sẽ bật lên.
➤Chọn cột Tên sinh viên nằm trong khu vực Filters.
➤Nhấn OK.

Kết quả:
Sau đó, bạn sẽ nhận được ba trang tính khác nhau cho ba sinh viên Daniel Defoe, Henry Jackson, và Donald Paul tương ứng.



Đọc thêm: Tách trang tính Excel thành nhiều trang tính dựa trên hàng
Phương pháp-3: Sử dụng tùy chọn Bảng
Để tách trang tính chính thành nhiều trang tính dựa trên cột Tên sinh viên, bạn có thể sử dụng tùy chọn Bảng.

Bước-01:
➤Tạo ba trang tính đặt tên theo ba tên sinh viên.
➤Sao chép bảng dữ liệu từ trang tính chính và dán vào ba trang tính khác nhau này.

Bước-02:
➤Đi đến Insert Tab>>Table Tùy chọn

Sau đó hộp thoại Create Table sẽ xuất hiện.
➤Chọn dữ liệu cho Bảng của bạn.
➤Nhấp vào My table has headers
➤Nhấn OK

Sau đó, bảng sau sẽ được tạo.

➤Đi đến Table Design Tab>>Tools Dropdown>>Insert Slicer Tùy chọn

Sau đó hộp thoại Insert Slicers sẽ bật lên.
➤Chọn cột Tên sinh viên (cột dựa trên đó bạn muốn tách trang tính)
➤Nhấn OK.

Sau đó, một Hộp Tên sinh viên sẽ xuất hiện có ba tùy chọn (ba tên sinh viên)

➤Nhấp vào Daniel Defoe cho trang tính của sinh viên này.
Kết quả:
Bạn sẽ nhận được dữ liệu cho sinh viên Daniel Defoe trong trang tính cho sinh viên này.

Bước-03:
➤Làm theo Bước-02 cho hai trang tính khác.
Theo cách này, bạn sẽ tạo hai trang tính khác cho Henry Jackson và Donald Paul như bên dưới.


Đọc thêm: Cách tách trang tính Excel thành nhiều tệp (3 phương pháp nhanh)
Đọc tương tự
- Cách tách màn hình trong Excel (3 cách)
- [Sửa:] Xem cạnh nhau Excel không hoạt động
- Cách bật xem cạnh nhau với căn chỉnh dọc trong Excel
Phương pháp-4: Sử dụng tùy chọn Lọc
Để tách trang tính chính thành nhiều trang tính dựa trên cột Tên sinh viên, tôi sẽ sử dụng tùy chọn Lọc trong phương pháp này.

Bước-01:
➤Tạo ba trang tính đặt tên theo ba tên sinh viên.
➤Sao chép bảng dữ liệu từ trang tính chính và dán vào ba trang tính khác nhau này.

Bước-02:
➤Chọn bảng dữ liệu
➤Đi đến Data Tab>>Filter Tùy chọn

Sau đó, tùy chọn Lọc sẽ được kích hoạt cho bảng dữ liệu này.
➤Nhấp vào dấu Dropdown trong cột Tên sinh viên.

➤Chọn tên Daniel Defoe cho trang tính này và Nhấn OK.

Kết quả:
Sau đó, bạn sẽ nhận được dữ liệu cho sinh viên Daniel Defoe trong trang tính cho sinh viên này.

Bước-03:
➤Làm theo Bước-02 cho hai trang tính khác.
Sau đó, bạn sẽ nhận được hai trang tính khác cho Henry Jackson và Donald Paul như bên dưới.


Đọc thêm: Cách tách trang tính trong Excel (6 cách hiệu quả)
Phương pháp-5: Mã VBA để tách trang tính thành nhiều trang tính dựa trên giá trị cột
Bạn có thể tách một trang tính thành nhiều trang tính dựa trên giá trị cột bằng cách sử dụng mã VBA như phương pháp này.

Bước-01:
➤Đi đến Developer Tab>>Visual Basic Tùy chọn

Sau đó, Visual Basic Editor sẽ mở ra.
➤Đi đến Insert Tab>> Module Tùy chọn

Sau đó, một Module sẽ được tạo.

Bước-02:
➤Viết mã sau
Sub Splitsheet() Dim lr As Long Dim sheet 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("Select the header row:", "", Type:=8) If TypeName(xTRg) = "Nothing" Then Exit Sub Set xVRg = Application.InputBox _ ("Select the column on the basis of which split data:", "", Type:=8) If TypeName(xVRg) = "Nothing" Then Exit Sub vcol = xVRg.Column Set sheet = xTRg.Worksheet lr = sheet.Cells(sheet.Rows.Count, vcol).End(xlUp).Row title = xTRg.AddressLocal titlerow = xTRg.Cells(1).Row icol = sheet.Columns.Count sheet.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") sheet.Activate For i = (titlerow + xTRg.Rows.Count) To lr On Error Resume Next If sheet.Cells(i, vcol) <> "" And Application.WorksheetFunction. _ Match(ws.Cells(i, vcol), sheet.Columns(icol), 0) = 0 Then sheet.Cells(sheet.Rows.Count, icol).End(xlUp).Offset(1) = sheet.Cells(i, vcol) End If Next myarr = Application.WorksheetFunction.Transpose(sheet.Columns(icol). _ SpecialCells(xlCellTypeConstants)) sheet.Columns(icol).Clear For i = 2 To UBound(myarr) sheet.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") sheet.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 sheet.AutoFilterMode = False sheet.Activate Application.DisplayAlerts = True End Sub
Ở đây, Splitsheet() là tên Sub procedure và các biến lr, sheet, vcol, i, icol, myarr, title, titlerow, xTRg, xVRg, xWSTRg được khai báo với các kiểu dữ liệu khác nhau bằng cách sử dụng tham số Dimension.
Ở đây, nhiều câu lệnh IF và vòng lặp FOR đã được sử dụng để tách trang tính thành nhiều trang tính.

➤Nhấn F5
Chọn hàng tiêu đề: Hộp thoại sẽ mở ra.
➤Chọn phạm vi hàng tiêu đề và Nhấn OK.

Sau đó Chọn cột dựa trên đó tách dữ liệu: Wizard sẽ bật lên.
➤Chọn cột Tên sinh viên và nhấn OK.

Kết quả:
Cuối cùng, bạn sẽ nhận được ba trang tính cho Daniel Defoe, Henry Jackson, và Donald Paul như bên dưới.



Ở đây chúng ta đã sử dụng đích dán tại ô A1, đó là lý do dữ liệu tách bắt đầu từ ô đó.
Đọc thêm: Cách tách sổ làm việc thành các tệp Excel riêng biệt với mã VBA
Phần thực hành
Để tự thực hành, chúng tôi đã cung cấp phần Thực hành như bên dưới trong trang tính tên Thực hành. Vui lòng tự làm.

Kết luận
Trong bài viết này, tôi đã cố gắng bao quát các cách dễ dàng nhất để tách trang tính Excel thành nhiều trang tính dựa trên giá trị cột trong Excel một cách hiệu quả. Hy vọng bạn sẽ thấy nó hữu ích. Nếu bạn có bất kỳ đề xuất hoặc câu hỏi nào, hãy chia sẻ với chúng tôi.
Đọc thêm
- Tách trang tính thành các sổ làm việc riêng biệt trong Excel (4 phương pháp)
- Cách mở hai tệp Excel riêng biệt (5 phương pháp dễ dàng)
- Mở nhiều tệp Excel trong một sổ làm việc (4 cách dễ dàng)
- Cách xem trang tính Excel trong các cửa sổ riêng biệt (4 phương pháp)