Tách số trong một chuỗi

  • Thread starter LuongPhuongzzz
  • Ngày gửi
L

LuongPhuongzzz

Guest
12/5/17
1
1
1
29
Mình cần tách các số trong một chuỗi 1,2,6,11,13 ra thành các số riêng lẻ 1 2 6 11 13 để dùng hàm Hlookup. Tách các số riêng lẻ chứ ko phải ngăn cách bằng space đâu ạ. Ai biết giúp mình với.
 
Khóa học Quản trị dòng tiền
Kaspersky

Kaspersky

Love Love Love
16/7/12
773
138
43
www.thuthuatexcel.com
Mình cần tách các số trong một chuỗi 1,2,6,11,13 ra thành các số riêng lẻ 1 2 6 11 13 để dùng hàm Hlookup. Tách các số riêng lẻ chứ ko phải ngăn cách bằng space đâu ạ. Ai biết giúp mình với.
Tách sao bạn nhỉ. Kiểu ABC123XYZ giờ bạn muốn tách số 123 ra hả?
 
tieulyhue

tieulyhue

Cao cấp
20/10/10
473
181
43
36
huế
Thông thường những hàm để tách chuỗi gồm có hàm left, right hoặc mid nhé. Sử dụng hàm nào để tách và như thế nào thì phụ thuộc vào nhu cầu của bạn để dùng. Để biết cách dùng bạn vào google tìm hiểu thêm. Chúc bạn dùng tốt.
 
thinhvd

thinhvd

Cao cấp
25/11/09
1,336
234
63
Hà Nội
bluesofts.net
Mình cần tách các số trong một chuỗi 1,2,6,11,13 ra thành các số riêng lẻ 1 2 6 11 13 để dùng hàm Hlookup. Tách các số riêng lẻ chứ ko phải ngăn cách bằng space đâu ạ. Ai biết giúp mình với.
Định viết đoạn code VBA nhưng thấy dùng hàm có thể tách được (theo file đính kèm)
Bước 1: Tìm vị trí các dấu phẩy bằng hàm:
=IF(IFERROR(FIND(",",$A$3,A2+1),LEN($A$3)+1)=A2,0,IFERROR(FIND(",",$A$3,A2+1),LEN($A$3)+1))
Bước 2: Căn cứ vào vị trí dấu phẩy tách số:
=IF(B2=0,"",VALUE(MID($A$3,A2+1,B2-1-A2)))
 

Đính kèm

  • Tachsodauphay.xlsx
    8.4 KB · Lượt xem: 124
  • Like
Reactions: Kaspersky
Kaspersky

Kaspersky

Love Love Love
16/7/12
773
138
43
www.thuthuatexcel.com
Định viết đoạn code VBA nhưng thấy dùng hàm có thể tách được (theo file đính kèm)
Bước 1: Tìm vị trí các dấu phẩy bằng hàm:
=IF(IFERROR(FIND(",",$A$3,A2+1),LEN($A$3)+1)=A2,0,IFERROR(FIND(",",$A$3,A2+1),LEN($A$3)+1))
Bước 2: Căn cứ vào vị trí dấu phẩy tách số:
=IF(B2=0,"",VALUE(MID($A$3,A2+1,B2-1-A2)))
Hay quá bác ơi. Bác viết luôn VBA cho anh em tham khảo luôn
 
H

Hà Anh Đức

Guest
25/5/17
1
0
1
34
Dear các bác,
Phiền các bác xử lý giúp em vấn đề này!
Hiện tại em đang cần tách số ra khỏi 1 chuỗi kí tự, ví dụ:
Duc123456 --> Em muốn tách ra chỉ còn: 123456
Vấn đề là chuỗi kí tự này như sau:
- Gồm phần chữ và số. Phần số ở sau phần chữ
- Tuy nhiên số lượng số ở sau phần chữ không giống nhau, lúc là 9 số, lúc là 12 số nên em không dùng hàm Right cho toàn bộ cột được
Rất mong nhận được sự trợ giúp của các bác :)
 
thinhvd

thinhvd

Cao cấp
25/11/09
1,336
234
63
Hà Nội
bluesofts.net
Dear các bác,
Phiền các bác xử lý giúp em vấn đề này!
Hiện tại em đang cần tách số ra khỏi 1 chuỗi kí tự, ví dụ:
Duc123456 --> Em muốn tách ra chỉ còn: 123456
Vấn đề là chuỗi kí tự này như sau:
- Gồm phần chữ và số. Phần số ở sau phần chữ
- Tuy nhiên số lượng số ở sau phần chữ không giống nhau, lúc là 9 số, lúc là 12 số nên em không dùng hàm Right cho toàn bộ cột được
Rất mong nhận được sự trợ giúp của các bác :)
Thế số lượng ký tự của phần text có giống nhau không?
 
thinhvd

thinhvd

Cao cấp
25/11/09
1,336
234
63
Hà Nội
bluesofts.net
Dear các bác,
Phiền các bác xử lý giúp em vấn đề này!
Hiện tại em đang cần tách số ra khỏi 1 chuỗi kí tự, ví dụ:
Duc123456 --> Em muốn tách ra chỉ còn: 123456
Vấn đề là chuỗi kí tự này như sau:
- Gồm phần chữ và số. Phần số ở sau phần chữ
- Tuy nhiên số lượng số ở sau phần chữ không giống nhau, lúc là 9 số, lúc là 12 số nên em không dùng hàm Right cho toàn bộ cột được
Rất mong nhận được sự trợ giúp của các bác :)
Trường hợp nếu số ký tự text cố định là 03 ký tự thì dùng công thức: =MID(A1,4,LEN(A1)-3)
Trường hợp nếu số ký tự text không cố định thì dùng công thức:
=IF(ISNUMBER(VALUE(MID(A1,1,1))),A1,IF(ISNUMBER(VALUE(MID(A1,2,1))),MID(A1,2,LEN(A1)-1),IF(ISNUMBER(VALUE(MID(A1,3,1))),MID(A1,3,LEN(A1)-2),IF(ISNUMBER(VALUE(MID(A1,4,1))),MID(A1,4,LEN(A1)-3),IF(ISNUMBER(VALUE(MID(A1,5,1))),MID(A1,5,LEN(A1)-4),IF(ISNUMBER(VALUE(MID(A1,6,1))),MID(A1,6,LEN(A1)-5),IF(ISNUMBER(VALUE(MID(A1,7,1))),MID(A1,7,LEN(A1)-6),IF(ISNUMBER(VALUE(MID(A1,8,1))),MID(A1,8,LEN(A1)-7)))))))))
Công thức loàng ngoàng ở trên cho phép số ký tự dao động từ 0 đến 8 ký tự. Có thể mở rộng thêm
 
  • Like
Reactions: Kaspersky
Kaspersky

Kaspersky

Love Love Love
16/7/12
773
138
43
www.thuthuatexcel.com
Trường hợp nếu số ký tự text cố định là 03 ký tự thì dùng công thức: =MID(A1,4,LEN(A1)-3)
Trường hợp nếu số ký tự text không cố định thì dùng công thức:
=IF(ISNUMBER(VALUE(MID(A1,1,1))),A1,IF(ISNUMBER(VALUE(MID(A1,2,1))),MID(A1,2,LEN(A1)-1),IF(ISNUMBER(VALUE(MID(A1,3,1))),MID(A1,3,LEN(A1)-2),IF(ISNUMBER(VALUE(MID(A1,4,1))),MID(A1,4,LEN(A1)-3),IF(ISNUMBER(VALUE(MID(A1,5,1))),MID(A1,5,LEN(A1)-4),IF(ISNUMBER(VALUE(MID(A1,6,1))),MID(A1,6,LEN(A1)-5),IF(ISNUMBER(VALUE(MID(A1,7,1))),MID(A1,7,LEN(A1)-6),IF(ISNUMBER(VALUE(MID(A1,8,1))),MID(A1,8,LEN(A1)-7)))))))))
Công thức loàng ngoàng ở trên cho phép số ký tự dao động từ 0 đến 8 ký tự. Có thể mở rộng thêm
Em kiểm tra thì số ký tự chữ 7 thôi bác ạ, 8 nó không chạy, phải thêm.
 
B

be09

Guest
25/10/11
16
0
1
66
Biên Hòa, Đồng Nai
Mình cần tách các số trong một chuỗi 1,2,6,11,13 ra thành các số riêng lẻ 1 2 6 11 13 để dùng hàm Hlookup. Tách các số riêng lẻ chứ ko phải ngăn cách bằng space đâu ạ. Ai biết giúp mình với.
Nếu là chuỗi như thế này 1,2,6,11,13.
Thì dùng Text to Columns có sẳn trong Excel vừa nhanh lẹ lại dễ dàng, cách thực hiện như sau:
Chọn vùng dữ liệu cần tách, vào Data > Text to Columns cửa sổ Convert Wizard - Step 1 of 3 hiện ra, chọn Delimited rồi nhấn Next, cửa sổ Convert Wizard - Step 2 of 3 hiện ra, chọn Other khung bên phải gõ dấu phẩy (như dấy phân cách trong chuỗi) rồi nhấn Finish.

Lưu ý: Khi dùng Text to Columns nó sẽ ghi đè một số cột bên phải, vì vậy nên Copy riêng ra 1 cột trống để thực hiện.
 

Xem nhiều

Webketoan Zalo OA