Trích xuất các chuỗi con từ một chuỗi được phân tách bằng dấu phẩy bằng các công thức trong Excel


Câu trả lời:


3

Bạn có thể sử dụng VBA để tạo một hàm tùy chỉnh có thể được sử dụng làm công thức. Để làm điều này:

  1. Mở Visual Basic (Alt + F11)
  2. Tạo mô-đun mới (Chèn- & gt; Mô-đun)
  3. Sao chép / dán đoạn mã sau:

Public Function custom_split(str As String, num As Long, Optional delimeter As String = " ") As String
    Dim substrs() As String
    substrs = split(str, delimeter)
    If UBound(substrs) < num Then
        custom_split = ""
    Else
        custom_split = Trim(substrs(num))
    End If
End Function

Bây giờ hãy đóng cửa sổ Visual Basic để quay lại Excel.

Để sử dụng công thức, theo ví dụ của bạn, hãy nhập

  • trong B1: = custom_split (A1; 0; ",")
  • trong C1: = custom_split (A1; 1; ",")
  • v.v ...

Bạn có thể thay đổi dấu phẩy để phân chia bởi các ký tự khác.

Nhược điểm duy nhất của các công thức tùy chỉnh là bạn sẽ nhận được cảnh báo để bật macro bất cứ khi nào bạn mở tệp.


Chính xác những gì tôi đang tìm kiếm, cảm ơn bạn!
Carlos Gutiérrez

2

Tôi đã làm điều này bằng cách sử dụng Left() và một số cột trên bảng tính dự phòng đếm các ký tự cho đến khi tìm thấy dấu phẩy. Nó trông giống như thế này:

    A                          B                C                D
1    Text                    1st Comma        2nd Comma        3rd comma
2 =(cell ref to text)&","   =find(",",a2,0)  =find(",",a2,b2) =find(",",a2,c2)

Referring to your original sheet:
B1: =Left(a1,NewSheet!B2)
C1: =Mid(A1, NewSheet!B2+1, NewSheet!C2-NewSheetB2)
D1: =Mid(A1, NewSheet!(C2+1 NewSheet!d2-Newsheet!c2)

Trong NewSheet của bạn, hãy làm nhiều cột như bạn nghĩ có thể có dấu phẩy trong văn bản của bạn. Nếu số lượng lớn, có lẽ bạn nên sử dụng giải pháp VBA.

Lưu ý rằng tôi đã dán một dấu phẩy vào cuối chuỗi của bạn để bạn không gặp lỗi (#value nếu không có dấu phẩy trong chuỗi). Bạn có thể kiểm tra kết quả lớn hơn độ dài của chuỗi gốc hoặc bạn có thể sử dụng =iferror() để xử lý =find() chức năng không tìm thấy dấu phẩy. Sử dụng lần cuối =Trim() nếu các chuỗi không nhất quán sử dụng khoảng trắng sau dấu phẩy.


1

Bạn có thể sử dụng các chức năng văn bản Trái, Giữa và Phải. Bên trái cho phép bạn trích xuất một số ký tự từ phía bên trái của chuỗi văn bản. Phải làm điều tương tự từ phía bên phải của chuỗi văn bản. Với Mid, bạn loại trừ một số lượng ký tự ở bên trái, sau đó bảo nó lấy số x ký tự tiếp theo.

Nếu bạn đi đến hộp thoại "Chèn Hàm" (nhấp vào "fx" bên cạnh thanh công thức), bạn sẽ tìm thấy các hàm này trong danh mục "Văn bản".


Cảm ơn. Vấn đề là , có thể ở bất kỳ vị trí nào. Dù sao, sử dụng SEARCH, MID, cột trung gian để giữ , vị trí và một số lồng nhau IF Tôi đã có thể làm điều này.
Carlos Gutiérrez

@Carlos, sau đó xin vui lòng gửi câu trả lời cho mình để cho người khác cũng được hưởng lợi?
Arjan

@Arjan - công thức của tôi rất phức tạp
Carlos Gutiérrez
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.