[Excel] Extract Numbers of a String without VBA

Cho các chuỗi ký tự được ví dụ như hình bên dưới:

Đầu tiên, cần phân tách các ký tự trong chuỗi, mỗi ô một ký tự. Tuy nhiên, ta chỉ cần giữ lại các số, do đó, dùng VALUE để chuyển các ký tự được tách sang dạng số. Nếu gặp lỗi #VALUE! thì đó là text và chúng ta cần loại bỏ nó.
Để loại bỏ các giá trị #VALUE! chúng ta dùng hàm IFERROR để ô chứa các giá trị lỗi sang ô trống.

Giải thích hàm:
=MID($A$2,ROW(A1),1): lấy ra 1 ký tự bắt đầu từ ký tự đầu tiên (ROW(A1)=1), khi fill xuống ô bên dưới sẽ lấy 1 ký tự bắt đầu từ ký tự thứ 2 (lúc này ROW(A2)=2). Cố định $A$2 khi fill xuống.
=VALUE(MID($A$2,ROW(A1),1)): chuyển các ký tự được tách sang dạng value, nếu ký tự được tách không phải là số, sẽ gặp lỗi #VALUE!
=IFERROR(VALUE(MID($A$2,ROW(A1),1)),“”): ô nào chứa lỗi #VALUE! sẽ chuyển thành ô rỗng.

Giải thích hàm: =TEXTJOIN(delimiter,ignore_empty,text)
delimiter = “”: giữa các ký tự được nối không chứa các dấu phân cách như “-“, “,”, “:”,…
ignore_empty: chọn TRUE để bỏ qua các ô trống, chỉ nối những ô chứa ký tự;
text: nối các ký tự nằm từ ô B2 đến B32000. Sở dĩ là B32000 vì 1 ô trong Excel chỉ chứa tối đa 32000 ký tự. Sau khi phân tách các ký tự sẽ trải dọc từ ô B2 đến B32000.


Leave a comment