Tách chuỗi văn bản bằng dấu phân cách thành nhiều hàng - 3 thủ thuật nhanh
Thông thường, bạn có thể sử dụng tính năng Văn bản thành Cột để chia nội dung ô thành nhiều cột bằng một dấu phân cách cụ thể, chẳng hạn như dấu phẩy, dấu chấm, dấu chấm phẩy, dấu gạch chéo, v.v. Tuy nhiên, đôi khi, bạn có thể cần chia nội dung ô được phân tách thành nhiều hàng và lặp lại dữ liệu từ các cột khác như ảnh chụp màn hình bên dưới. Bạn có cách nào tốt để xử lý tác vụ này trong Excel không? Hướng dẫn này sẽ giới thiệu một số phương pháp hiệu quả để hoàn thành công việc này trong Excel.
Trong phần này, tôi sẽ giới thiệu hai mã VBA giúp chia nội dung ô được phân tách bằng một dấu phân cách nhất định.
Để tách các chuỗi văn bản được phân tách bằng một số dấu phân cách thông thường, chẳng hạn như dấu phẩy, dấu cách, dấu chấm phẩy, dấu gạch chéo, v.v., mã sau đây có thể giúp bạn. Vui lòng làm theo các bước dưới đây:
Chú thích: Mã này không hỗ trợ Undo, bạn nên sao lưu dữ liệu trước khi áp dụng mã này.
Bước 1: Mở trình chỉnh sửa mô-đun VBA và sao chép mã
1. Kích hoạt trang tính mà bạn muốn sử dụng. Và sau đó, nhấn Alt + F11 phím để mở Microsoft Visual Basic cho các ứng dụng cửa sổ.
2. Trong cửa sổ mở ra, nhấp vào Chèn > Mô-đun để tạo một mô-đun trống mới.
3. Sau đó, sao chép và dán mã bên dưới vào mô-đun trống.
Mã VBA: Tách văn bản theo dấu phân cách cụ thể (dấu phẩy, dấu chấm, dấu cách, v.v.)
Sub SplitTextIntoRows()
'UpdatebyExtendoffice
Dim xSRg, xIptRg, xCrRg, xRg As Range
Dim xSplitChar As String
Dim xArr As Variant
Dim xFNum, xFFNum, xRow, xColumn, xNum As Integer
Dim xWSh As Worksheet
Set xSRg = Application.InputBox("Select a range:", "Kutools for Excel", , , , , , 8)
If xSRg Is Nothing Then Exit Sub
xSplitChar = Application.InputBox("Type delimiter:", "Kutools for Excel", , , , , , 2)
If xSplitChar = "" Then Exit Sub
Application.ScreenUpdating = False
xRow = xSRg.Row
xColumn = xSRg.Column
Set xWSh = xSRg.Worksheet
For xFNum = xSRg.Rows.Count To 1 Step -1
Set xRg = xWSh.Cells.Item(xRow + xFNum - 1, xColumn)
xArr = Split(xRg, xSplitChar)
xIndex = UBound(xArr)
For xFFNum = LBound(xArr) To UBound(xArr)
xRg.EntireRow.Copy
xRg.Offset(1, 0).EntireRow.Insert Shift:=xlShiftDown
xRg.Worksheet.Cells(xRow + xFNum, xColumn) = xArr(xIndex)
xIndex = xIndex - 1
Next
xRg.EntireRow.Delete
Next
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
Bước 2: Thực thi mã để nhận kết quả
1. Sau khi dán mã, vui lòng nhấn F5 chìa khóa để chạy mã này. Sau đó, một hộp nhắc sẽ bật ra để nhắc bạn chọn các ô chứa văn bản được phân tách mà bạn muốn tách, xem ảnh chụp màn hình:
2. Sau đó, nhấp vào OK, một hộp nhắc khác hiện ra để nhắc bạn nhập dấu phân tách mà bạn muốn dựa vào đó để phân tách dữ liệu. Ở đây, tôi gõ dấu phẩy và dấu cách (, ), xem ảnh chụp màn hình:
3. Cuối cùng, nhấp vào OK cái nút. Bây giờ, bạn sẽ thấy các chuỗi văn bản đã chọn được chia thành các hàng dựa trên dấu phẩy và dữ liệu cột tương đối khác được lặp lại như ảnh chụp màn hình bên dưới:
Nếu nội dung ô của bạn được phân tách bằng ngắt dòng, để chia chúng thành nhiều hàng, đây là một mã VBA khác có thể giúp bạn.
Chú thích: Mã này không hỗ trợ Undo bạn nên sao lưu dữ liệu trước khi áp dụng mã này.
Bước 1: Mở trình chỉnh sửa mô-đun VBA và sao chép mã
1. nhấn Alt + F11 phím để mở Microsoft Visual Basic cho các ứng dụng cửa sổ.
2. Trong cửa sổ mở ra, nhấp vào Chèn > Mô-đun để tạo một mô-đun trống mới.
3. Sau đó, sao chép và dán mã bên dưới vào mô-đun trống.
Mã VBA: Tách văn bản bằng ngắt dòng
Sub SplitTextIntoRows()
'UpdatebyExtendoffice
Dim xSRg, xIptRg, xCrRg, xRg As Range
Dim xSplitChar As String
Dim xArr As Variant
Dim xFNum, xFFNum, xRow, xColumn, xNum As Integer
Dim xWSh As Worksheet
Set xSRg = Application.InputBox("Select a range:", "Kutools for Excel", , , , , , 8)
If xSRg Is Nothing Then Exit Sub
xSplitChar = Chr(10)
Application.ScreenUpdating = False
xRow = xSRg.Row
xColumn = xSRg.Column
Set xWSh = xSRg.Worksheet
For xFNum = xSRg.Rows.Count To 1 Step -1
Set xRg = xWSh.Cells.Item(xRow + xFNum - 1, xColumn)
xArr = Split(xRg, xSplitChar)
xIndex = UBound(xArr)
For xFFNum = LBound(xArr) To UBound(xArr)
xRg.EntireRow.Copy
xRg.Offset(1, 0).EntireRow.Insert Shift:=xlShiftDown
xRg.Worksheet.Cells(xRow + xFNum, xColumn) = xArr(xIndex)
xIndex = xIndex - 1
Next
xRg.EntireRow.Delete
Next
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
Bước 2: Thực thi mã để nhận kết quả
1. Sau khi dán mã, vui lòng nhấn F5 chìa khóa để chạy mã này. Trong hộp bật ra, vui lòng chọn các ô bạn muốn tách, xem ảnh chụp màn hình:
2. Sau đó, nhấp vào OK nút, dữ liệu trong các ô đã chọn được chia thành các hàng như ảnh chụp màn hình bên dưới:
Nếu bạn đã cài đặt Kutools cho Excel, Với khả Chia dữ liệu thành hàng tính năng, bạn có thể chia chuỗi văn bản thành nhiều hàng bằng bất kỳ dấu phân cách nào mà bạn đã chỉ định. Vui lòng thực hiện theo các bước sau:
Bước 1: Chọn tính năng Split Data to Rows
Nhấp chuột Kutools > Hợp nhất & Tách > Chia dữ liệu thành hàng, xem ảnh chụp màn hình:
Bước 2: Chỉ định các ô dữ liệu và dấu phân cách để tách
Trong hộp thoại bật ra, hãy sử dụng các tùy chọn sau:
Bây giờ, các ô đã chọn có chuỗi văn bản được phân tách đã được chuyển đổi thành nhiều hàng dựa trên dấu phân cách cụ thể, hãy xem ảnh chụp màn hình:
Lời khuyên: Nếu muốn khôi phục lại dữ liệu gốc bạn chỉ cần nhấn Ctrl + Z để hoàn tác.
Dễ sử dụng? Quan tâm đến tính năng này, xin vui lòng nhấp để tải xuống để dùng thử miễn phí trong 30 ngày.
Nếu bạn đang chạy Office 365 hoặc Excel 2016 trở lên, Truy vấn nguồn là một công cụ mạnh mẽ có thể giúp bạn tách văn bản được phân tách thành nhiều hàng hoặc cột. Sẽ hữu ích nếu bạn muốn làm mới dữ liệu phân tách khi dữ liệu gốc của bạn thay đổi. Vui lòng làm theo các bước sau để hoàn thành nó:
Bước 1: Lấy bảng dữ liệu vào Power Query
1. Chọn phạm vi dữ liệu mà bạn muốn sử dụng, sau đó nhấp vào Ngày > Từ bảng, xem ảnh chụp màn hình:
Lời khuyên: Trong Excel 2019 và Office 365, bấm vào Ngày > Từ Bảng / Phạm vi.
2. Trong cửa sổ bật ra Tạo bảng hộp thoại, nhấn OK để tạo bảng, xem ảnh chụp màn hình:
KHAI THÁC. Bây giờ, Truy vấn nguồn Biên tập viên cửa sổ được hiển thị với dữ liệu, xem ảnh chụp màn hình:
Bước 2: Thực hiện các phép biến đổi trong Power Query
1. Chọn cột mà bạn muốn tách. Và sau đó, bấm Trang chủ > Cột tách > Bằng dấu phân cách, xem ảnh chụp màn hình:
2. bên trong Chia cột theo dấu phân cách hộp thoại:
Để tách các chuỗi văn bản bằng dấu phẩy, dấu cách, dấu chấm phẩy, v.v., vui lòng thực hiện như sau:
Để chia chuỗi văn bản thành nhiều hàng bằng cách ngắt liên kết, vui lòng thực hiện như sau:
3. Bây giờ, dữ liệu đã chọn đã được chia thành nhiều hàng như ảnh chụp màn hình bên dưới:
Bước 3: Xuất Power Query sang bảng Excel
1. Và sau đó, bạn nên xuất dữ liệu vào trang tính của mình. vui lòng bấm vào Trang chủ > Đóng và tải > Đóng và tải / Đóng và tải vào, (ở đây mình sẽ click Đóng và tải), xem ảnh chụp màn hình:
Lời khuyên: Nhấp chuột Đóng và tải sẽ xuất dữ liệu sang một trang tính mới; Nhấp chuột Đóng và tải vào tùy chọn, dữ liệu sẽ được xuất ra bất kỳ trang tính nào khác mà bạn cần.
2. Cuối cùng, dữ liệu sẽ được tải vào một trang tính mới, xem ảnh chụp màn hình:
Lời khuyên: Nếu bạn cần cập nhật dữ liệu trong bảng gốc thường xuyên, xin đừng lo, bạn chỉ cần nhấp chuột phải vào bảng kết quả và nhấp vào Refresh để có được kết quả mới một cách linh hoạt.