Bỏ qua nội dung chính

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.


Video: Tách chuỗi văn bản bằng dấu phân cách thành nhiều hàng


Phương pháp A: Tách văn bản được phân tách thành nhiều hàng bằng mã VBA

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 văn bản được phân tách bằng dấu phẩy, dấu cách, dấu chấm phẩy, v.v.

Để 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:


Tách văn bản cách nhau bằng ngắt dòng

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:


Phương pháp B: 10 giây để tách văn bản được phân tách thành nhiều hàng bằng Kutools cho Excel

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:

  • 1). Chọn danh sách các ô mà bạn muốn tách khỏi Phạm vi (cột đơn) hộp văn bản;
  • 2). Sau đó, chọn dấu phân cách để phân tách dữ liệu của bạn, ở đây, tôi sẽ chọn Nền tảng khác và nhập dấu phẩy và dấu cách (, ) vào hộp văn bản;
  • 3). Cuối cùng, bấm vào OK .

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.


Phương pháp C: Tách văn bản được phân cách thành nhiều hàng bằng cách Power Query

Nếu bạn đang chạy Office 365 hoặc Excel 2016 trở lên, Power Query 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: Đưa 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ờ, Power Query 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:

  • 1). Chọn dấu phân tách dữ liệu của bạn được phân tách bằng Chọn hoặc nhập dấu phân cách danh sách thả xuống;
  • 2). Lựa chọn Mỗi lần xuất hiện của dấu phân cách từ chia tại phần;
  • 3). Sau đó nhấn vào Tùy chọn cấp cao để mở rộng phần, và chọn Hàng theo Chia thành;
  • 4). Cuối cùng, bấm vào OK để đóng hộp thoại này.

Để 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:

  • 1). Chọn Tuỳ chỉnh từ Chọn hoặc nhập dấu phân cách danh sách thả xuống;
  • 2). Từ Chèn các ký tự đặc biệt thả xuống, bấm vào Nguồn cấp dòng, và các ký tự # (lf) sẽ được chèn vào hộp văn bản bên dưới Tuỳ chỉnh tự động;
  • 3). Lựa chọn Mỗi lần xuất hiện của dấu phân cách từ phần Chia tại;
  • 4). Sau đó nhấn vào Tùy chọn cấp cao để mở rộng phần, và chọn Hàng theo Chia thành;
  • 5). Cuối cùng, bấm vào OK để đóng hộp thoại này.

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 ra Power Query vào một 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.


Bài viết liên quan:

  • Tách các giá trị ô thành nhiều cột
  • Trong Excel, khi bạn muốn chia danh sách các giá trị ô thành nhiều cột bằng các dấu phân cách nhất định, chẳng hạn như dấu phẩy, dấu cách, dấu chấm, dòng mới, v.v., thông thường, tính năng Chuyển văn bản thành cột có sẵn có thể giúp bạn hoàn thành bước công việc này từng bước. Bài viết này, tôi sẽ nói về một số thủ thuật hay để bạn chia các giá trị ô thành nhiều cột hoặc hàng một cách dễ dàng và nhanh chóng.
  • Tách một ô thành nhiều hàng hoặc nhiều cột
  • Giả sử bạn có một ô chứa nhiều nội dung được phân tách bằng một ký tự cụ thể, chẳng hạn như dấu chấm phẩy, và sau đó bạn muốn chia ô dài này thành nhiều hàng hoặc cột dựa trên dấu chấm phẩy, trong trường hợp này, bạn có cách nào nhanh chóng không để giải quyết nó trong Excel?
  • Tách chuỗi văn bản theo trường hợp
  • Trong Excel, chúng ta thường chia văn bản theo chiều rộng cố định hoặc dấu phân cách bằng chức năng Text to Columns, nhưng bạn đã bao giờ thử chia văn bản theo chữ hoa và chữ thường chưa? Ví dụ: bạn có một danh sách dữ liệu và bạn cần chia chúng thành hai cột dựa trên trường hợp: một cột chứa chuỗi chữ thường và cột kia chứa chuỗi chữ hoa như hình minh họa bên dưới. Hàm Text to Columns không hỗ trợ thao tác này, tuy nhiên, tôi có thể giới thiệu một thủ thuật để chia nhanh chuỗi văn bản theo từng trường hợp trong Excel.
  • Chia số thành các chữ số riêng lẻ
  • Giả sử bạn cần ngắt hoặc tách số thành từng chữ số như hình minh họa bên dưới, bạn có thể làm gì để đạt được điều đó? Bài viết này sẽ cung cấp hai phương pháp cho bạn.