Các phương pháp tách số từ chuỗi và ngược lại, đề nghị post tại đây

Liên hệ QC

cobecan1201

Thành viên mới
Tham gia
6/5/10
Bài viết
23
Được thích
3
Chào các bạn!

Mình đang gặp rắc rối trong một file excel như sau :

Ví dụ : 20-1904 B3 lò gốm
hoặc 1902 7/3 cmt8

Mình chỉ cần lấy giá trị là 1904,1902........

Mình gửi file đính kèm.Các bạn giúp mình nha.!
 
Đâu có thấy file đâu
 
cái này đơn gian mà, bạn có thể sử dụng công thức sau:

Nếu là: 20-1904 B3 lò gốm mình gọi ô chứa dữ liệu này là A1, bạn có thể đãnh công thức sau: =right(left(A1, 7),4)
Nếu là: 1902 7/3 cmt8 bạn chỉ cần gõ ct: =left(A1,4)
 
Hàm tách số

Nhờ các bác tách hộ em số trong file này. Em muốn tách chỉ lấy số trước dấu , Ví dụ như ở ô C3, C4, muốn tách lấy số: 45.625.360 và 22.000. Cám ơn các bác.
Note: Ngày trước em cũng đã làm 1 lần nhưng đã quên mất, hình như dùng hàm MID thì phải, nhưng em làm mãi không ra được./. :D
 

File đính kèm

  • Sao ke thang 07.xlsx
    31.8 KB · Đọc: 310
Nhờ các bác tách hộ em số trong file này. Em muốn tách chỉ lấy số trước dấu , Ví dụ như ở ô C3, C4, muốn tách lấy số: 45.625.360 và 22.000. Cám ơn các bác. Note: Ngày trước em cũng đã làm 1 lần nhưng đã quên mất, hình như dùng hàm MID thì phải, nhưng em làm mãi không ra được./. :D

Tức là tách lấy từ bên trái đến khi gặp dấu phẩy thì ngưng, đúng không?

Vậy thì dùng công thức này tại cell G2:

PHP:
=LEFT(C2,FIND(",",C2)-1)

kéo fill xuống

Để chuyển nó thành số thật sự, dùng công thức này:

PHP:
=SUBSTITUTE(LEFT(C2,FIND(",",C2)-1),".","")*1
 
Tức là tách lấy từ bên trái đến khi gặp dấu phẩy thì ngưng, đúng không?

Vậy thì dùng công thức này tại cell G2:

PHP:
=LEFT(C2,FIND(",",C2)-1)

kéo fill xuống

Để chuyển nó thành số thật sự, dùng công thức này:

PHP:
=SUBSTITUTE(LEFT(C2,FIND(",",C2)-1),".","")*1
Không được bác ạ, nó báo lỗi, nháy đen ở: C2,Find. Hay là do nó không hiểu được "," và ,
 
Vâng, các ơn các bác. Em làm được rồi. Nó không hiểu ở 2 dấu , thật.
 
Giả sử dữ liệu của bạn thuộc từ B2 trở xuống:
Tại C2 bạn thử công thức: =MID(B2,FIND("19",B2,1),4) sau đó fill xuống xem sao.

"Bạn phải đưa file lên thì mới tổng quát hết được."
 
Cần giúp lấy chuỗi ký tự

Tại A1 mình có đoạn sau: Nguyen Van A 290900289-3.000.0000 chuyen tien
Mình cần lấy ra: 290900289-3.000.0000
Có nghĩa là mình sẽ lấy bắt đầu từ 2909 cho đến khi có khoảng trắng thì thôi.
Vì mỗi lần kết quả sẽ khác nhau nên lấy đúng phần ký tự thì sẽ có lần bị sai.
VD: Nguyen Van A 290900289 chuyển tiền
Vậy khi lấy ra nó sẽ lấy thừa cả phần ký tự đằng sau.
 
Tại A1 mình có đoạn sau: Nguyen Van A 290900289-3.000.0000 chuyen tien
Mình cần lấy ra: 290900289-3.000.0000
Có nghĩa là mình sẽ lấy bắt đầu từ 2909 cho đến khi có khoảng trắng thì thôi.
Vì mỗi lần kết quả sẽ khác nhau nên lấy đúng phần ký tự thì sẽ có lần bị sai.
VD: Nguyen Van A 290900289 chuyển tiền
Vậy khi lấy ra nó sẽ lấy thừa cả phần ký tự đằng sau.

Bạn nên sửa lại tiêu đề đi không thôi bị vào sọt rác đó, bài của bạn bạn nên cho thêm ít trường hợp nữa mọi người sẽ giúp bạn chính xác hơn
 
Nếu A1= Nguyen Van A 290900289-3.000.0000, Công thức tại B1 :
PHP:
=RIGHT(A1;1+LEN(A1)-MIN(FIND({0;1;2;3;4;5;6;7;8;9};A1&1234567890)))
Công thức này đúng trong trường hợp tách toàn bộ ký tự bắt đầu từ vị trí ký tự number đầu tiên tìm thấy trong chuỗi!
 
Nếu A1= Nguyen Van A 290900289-3.000.0000, Công thức tại B1 :
PHP:
=RIGHT(A1;1+LEN(A1)-MIN(FIND({0;1;2;3;4;5;6;7;8;9};A1&1234567890)))
Công thức này đúng trong trường hợp tách toàn bộ ký tự bắt đầu từ vị trí ký tự number đầu tiên tìm thấy trong chuỗi!
Khó nhỉ. Vì mình chỉ muốn lấy từ 2909 cho đến khi có khoảng trắng là dừng, phần đằng sau mình không muốn lấy
Trong trường hợp thế này:
Nguyen Van A 290900289-3.000.0000
Hoặc
290900289-3.000.0000 chuyển tiền
Hoặc
Nguyen Van A 290900289 chuyển tiền
THì mình chỉ muốn lấy 290900289 hoặc 290900289-3.000.0000 mà thôi. Bạn giúp mình với
 
Lần chỉnh sửa cuối:
Nếu A1= Nguyen Van A 290900289-3.000.0000, Công thức tại B1 :
PHP:
=RIGHT(A1;1+LEN(A1)-MIN(FIND({0;1;2;3;4;5;6;7;8;9};A1&1234567890)))
Công thức này đúng trong trường hợp tách toàn bộ ký tự bắt đầu từ vị trí ký tự number đầu tiên tìm thấy trong chuỗi!
Người ta nói rằng:
VD: Nguyen Van A 290900289 chuyển tiền
Vậy khi lấy ra nó sẽ lấy thừa cả phần ký tự đằng sau.
Bé Còi kiên nhẫn chờ chủ Topic này đưa đủ dữ liệu lên rồi tha hồ ..."ngâm cú"
Híc
Thân
 
Khó nhỉ. Vì mình chỉ muốn lấy từ 2909 cho đến khi có khoảng trắng là dừng, phần đằng sau mình không muốn lấy
Trong trường hợp thế này:
Nguyen Van A 290900289-3.000.0000
Hoặc
290900289-3.000.0000 chuyển tiền
Hoặc
Nguyen Van A 290900289 chuyển tiền
THì mình chỉ muốn lấy 290900289 hoặc 290900289-3.000.0000 mà thôi. Bạn giúp mình với
Nhàn cư vi bất thiện
Ngồi buồn, làm đại, có gì bàn tiếp
 

File đính kèm

  • lamdai.xls
    17.5 KB · Đọc: 168
Nhàn cư vi bất thiện
Ngồi buồn, làm đại, có gì bàn tiếp
Cái này sai 1 rổ luôn
Mattroicoi 345678-12345678 chuyển tiền cho minhthien321
Thử xem
Người ta đã nói rõ ràng thế này rồi còn gì:
mình chỉ muốn lấy từ 2909 cho đến khi có khoảng trắng là dừng, phần đằng sau mình không muốn lấy
Find số 2909 và Find khoảng trắng sau số 2909, đơn giản thế thôi mà
Ẹc... Ẹc...
 
Công thức của hoamattroi tôi chế biến lại 1 tí cho bạn xem được hay không( bản quyền của hoamattroi)
=LEFT(TRIM(RIGHT(A1,1+LEN(A1)-MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&1234567890)))),FIND(" ",TRIM(RIGHT(A1,1+LEN(A1)-MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&1234567890)))),1))
 
Lần chỉnh sửa cuối:
Công thức của hamattroi tôi chế biến lại 1 tí cho bạn xem được hay không( bản quyền của hoamattroi)
=LEFT(TRIM(RIGHT(A1,1+LEN(A1)-MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&1234567890)))),FIND(" ",TRIM(RIGHT(A1,1+LEN(A1)-MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&1234567890)))),1))
Thank. Đây đúng là cái mình cần, cảm ơn bạn rất nhiều
Mình lại phát sinh vấn đề sau. Đấy là trong ô mà không có dữ liệu thì nó báo #VALUE!
Hoặc toàn chữ cũng là #VALUE!
Hoặc chỉ gõ không là 290900258 thì cũng #VALUE!
Mong bạn giúp mình với

Giờ mình muốn thế này. Nếu trong ô mà có chứa những ký tự như vậy thì nó sẽ lấy. Còn không thì sẽ bằng luôn A1. Như vậy cho đỡ mất dữ liệu
Với lại dữ liệu của mình là dữ liệu kiểu chữ chứ ko phải là số. Híc híc
 
Lần chỉnh sửa cuối:
Khó nhỉ. Vì mình chỉ muốn lấy từ 2909 cho đến khi có khoảng trắng là dừng, phần đằng sau mình không muốn lấy
Trong trường hợp thế này:
Nguyen Van A 290900289-3.000.0000
Hoặc
290900289-3.000.0000 chuyển tiền
Hoặc
Nguyen Van A 290900289 chuyển tiền
THì mình chỉ muốn lấy 290900289 hoặc 290900289-3.000.0000 mà thôi. Bạn giúp mình với
nên sửa lại tiêu đề bạn nhé
thực ra từ ct của hoamattroicoi chỉ cần thêm 1 chút nữa là được\
PHP:
=LEFT(RIGHT(A1,1+LEN(A1)-MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&1234567890))),FIND(" ",RIGHT(A1,1+LEN(A1)-MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&1234567890)))))
 
Web KT
Back
Top Bottom