Làm cách nào để tách một chuỗi dựa trên nền tảng: trong MS-Excel?


58

Cột excel của tôi chứa đầy những từ như thế này:

1.) ABC:DCF
2.) DCF:FED

Tôi muốn tách từng từ dựa trên ":" và đặt kết quả vào các cột liền kề sao cho "ABC: DCF" trong ô "A: 1" trở thành "ABC" trong ô "B: 1" và "DCF" trong ô " C: 1 "và các giá trị tương ứng trong mỗi cột. làm như thế nào?

Câu trả lời:


63

Chuyển đến tab Dữ liệu, sau đó tùy chọn Chuyển văn bản thành Cột. Sau đó, chọn tùy chọn "Được phân cách" và sau đó chọn "khác" và đặt bất kỳ dấu phân cách nào bạn muốn.


80

Văn bản đến cột sẽ hoạt động. Một tùy chọn khác, nếu bạn muốn giữ giá trị ban đầu, là sử dụng các công thức:
trong B1

=left(a1,find(":",a1)-1) 

ở C1

=mid(a1,find(":",a1)+1,len(a1))

2
Giá trị ban đầu có thể được giữ ngay cả với giải pháp khác (bạn có thể chỉ định một cột khác để lưu trữ các giá trị mới), nhưng tôi thích giải pháp này tốt hơn vì nó cho phép luôn có các giá trị cập nhật (ví dụ: nếu bạn sửa đổi A1, B1 và ​​C1 sẽ cập nhật, trong khi tùy chọn chuyển văn bản thành cột thì không).
psychowood

Đây là một giải pháp tuyệt vời
JSG

26

Nếu bạn có thể sử dụng VBA thì bạn có thể sử dụng Split()chức năng. Đây là Hàm do Người dùng Xác định (UDF) mà bạn có thể sử dụng trong một ô. Nó phân chia theo lựa chọn của bạn về ký tự và trả về phần tử thứ n của danh sách phân tách.

Xem Làm cách nào để thêm VBA trong MS Office? để biết thông tin về cách xác định UDF.

Function STR_SPLIT(str, sep, n) As String
    Dim V() As String
    V = Split(str, sep)
    STR_SPLIT = V(n - 1)
End Function

Vì vậy, bạn cần phải nhập:

=STR_SPLIT(A1, ":", 1) // for the first half
=STR_SPLIT(A1, ":", 2) // for the second half

1
Rất đẹp, không biết rằng thật dễ dàng để tạo ra các công thức của riêng bạn
cowls

1
Điều này là hoàn hảo để chia một URL thành các phần thành phần của nó.
Đánh bại

7

Dán nó vào B1 và ​​điền nó vào các cột bên phải và hàng xuống:

=TRIM(MID(SUBSTITUTE($A1,":",REPT(" ",999)),COLUMNS($A:A)*999-998,999))

Chỉnh sửa: Trước đây tôi đã đăng phiên bản địa phương hóa của công thức, trong đó ',' đã được thay thế bằng ';'. Điều đó không hoạt động trong phiên bản Excel của Hoa Kỳ:

=TRIM(MID(SUBSTITUTE($A1;":";REPT(" ";999));COLUMNS($A:A)*999-998;999))


1
Chào mừng đến với Siêu người dùng. Bạn có thể thêm một vài câu vào câu trả lời của bạn để giải thích điều này không và cách thức hoạt động? Điều đó sẽ nâng cao giá trị giáo dục của nó. Cảm ơn.
fixer1234

Vâng, chắc chắn rồi. Nó thực hiện tương tự những gì Text to Cột từ tab Dữ liệu thực hiện, ngoại trừ nó không có công thức. Bạn có thể thay thế ":" bằng một Dấu phân cách khác hoặc tham chiếu đến một dấu phân cách từ ô khác.
Hardi Uutma

Excel nói rằng đây không phải là một công thức hợp lệ khi bạn dán nó vào một ô. Vui lòng kiểm tra và cập nhật.
thilina R

Chào thilina R! Cảm ơn bạn đã thông báo. Tôi đã thực hiện điều chỉnh cho phiên bản Excel của Hoa Kỳ. Xin vui lòng cho tôi biết nếu bạn có bất kỳ rắc rối với điều đó bây giờ hoặc nếu bất cứ điều gì không rõ ràng.
Hardi Uutma

Rất đẹp. Câu trả lời duy nhất cho đến nay cho phép bạn xử lý nhiều dấu phân cách như bạn muốn, mà không cần tạo chức năng của riêng bạn.
CWilson
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.