xin các thày giúp em hàm tách láy số không lấy chữ (2 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

gamegamegamegame

Thành viên hoạt động
Tham gia
5/6/15
Bài viết
144
Được thích
5
[TABLE="width: 72"]
[TR]
[TD="width: 72"]1aaaaa[/TD]
[/TR]
[TR]
[TD]20bbbb[/TD]
[/TR]
[TR]
[TD]100ccccc[/TD]
[/TR]
[/TABLE]

em mường tách lấy số ko lấy chữ thi phai dung ham gi
 

File đính kèm

File đính kèm

Upvote 0
Nhân tiện xin hỏi các anh chị ví dụ mã như thế này 1FD581C thì có thể lấy hết các số ra được không ạ!
 
Upvote 0
Nhân tiện xin hỏi các anh chị ví dụ mã như thế này 1FD581C thì có thể lấy hết các số ra được không ạ!

Bạn thử cả 2 cách trên xem kết quả thế nào. Mọi người đã up hết File trong đó có CT bên trong cả rồi sao bạn không thử luôn !
 
Upvote 0
Theo mô tả của tác giả thì tôi hiểu rằng tác giả cần tách lấy những con số bên trái chuỗi.
Vậy nếu dùng công thức thì:
Mã:
=LEFT(E5,COUNT(--LEFT(E5,ROW($1:$15))))
Ctrl + Shift + Enter
Nếu dùng VBA thì:
Mã:
Public Function TachSo(ByVal Text As String) As Double
  TachSo = Val(Text)
End Function
Chỉ vậy thôi là đủ
 
Upvote 0
Theo mô tả của tác giả thì tôi hiểu rằng tác giả cần tách lấy những con số bên trái chuỗi.
Vậy nếu dùng công thức thì:
Mã:
=LEFT(E5,COUNT(--LEFT(E5,ROW($1:$15))))
Ctrl + Shift + Enter
Nếu dùng VBA thì:
Mã:
Public Function TachSo(ByVal Text As String) As Double
  TachSo = Val(Text)
End Function
Chỉ vậy thôi là đủ

Thầy ơi thầy cho em hỏi, giả sử em có 1 chuỗi là: Km1800+450 ÷ Km1800+756 (trái tuyến)
giờ em muốn tách chuỗi trên thành 2 ô riêng biệt, 1 ô là 1800450, còn ô khác là 1800756 thì phải làm cách nào ạ
 
Upvote 0
Thầy ơi thầy cho em hỏi, giả sử em có 1 chuỗi là: Km1800+450 ÷ Km1800+756 (trái tuyến)
giờ em muốn tách chuỗi trên thành 2 ô riêng biệt, 1 ô là 1800450, còn ô khác là 1800756 thì phải làm cách nào ạ

Yêu cầu cái gì cũng vậy, nên cho file thực tế lên sẽ hay hơn (mất công hỏi đi hỏi lại nhiều lần)
 
Upvote 0
Theo mô tả của tác giả thì tôi hiểu rằng tác giả cần tách lấy những con số bên trái chuỗi.


Nếu dùng VBA thì:
Mã:
Public Function [COLOR=#ff0000]TachSo(ByVal Text As String)[/COLOR] As Double
  TachSo = Val(Text)
End Function
Chỉ vậy thôi là đủ

Chú Ndu cho con hỏi , byVal Text nghĩa là thế nào ạ, khi nào thì mình dùng byVal Text và viết như cách của chú thì có lợi gì hơn so với viết

như thế này ạ : tachso(rg As Range) As Double .

Con cảm ơn chú !
 
Upvote 0
Chú Ndu cho con hỏi , byVal Text nghĩa là thế nào ạ, khi nào thì mình dùng byVal Text và viết như cách của chú thì có lợi gì hơn so với viết

như thế này ạ : tachso(rg As Range) As Double .

Con cảm ơn chú !

Nếu không ghi byVal thì ngầm định là byRef (tức rg as Range sẽ tương đương byRef rg as Range)
Tìm trên diễn đàn sự khác biệt của byValbyRef để biết thêm chi tiết:
http://www.giaiphapexcel.com/forum/...ange(ByVal-Target-As-Range)&p=27667#post27667
http://www.giaiphapexcel.com/forum/...-hữu-ích-của-Lê-Văn-Duyệt&p=235377#post235377
Lời khuyên: Cứ nên dùng byVal nếu bạn không nắm chắc byRef nó hoạt động như thế nào
 
Upvote 0
Em gửi file lên thầy kiểm tra giúp em với, em cảm ơn!

Dùng phương pháp tách tên mà làm:
1> Công thức cho cell B1:
Mã:
=--TRIM(LEFT(SUBSTITUTE(TRIM(SUBSTITUTE(SUBSTITUTE(MID($A1,1,FIND("(",$A1)-1),"Km",""),"+","")),"÷",REPT(" ",1000)),1000))
2> Công thức cho cell C1:
Mã:
=--TRIM(RIGHT(SUBSTITUTE(TRIM(SUBSTITUTE(SUBSTITUTE(MID($A1,1,FIND("(",$A1)-1),"Km",""),"+","")),"÷",REPT(" ",1000)),1000))
 
Upvote 0
Dùng phương pháp tách tên mà làm:
1> Công thức cho cell B1:
Mã:
=--TRIM(LEFT(SUBSTITUTE(TRIM(SUBSTITUTE(SUBSTITUTE(MID($A1,1,FIND("(",$A1)-1),"Km",""),"+","")),"÷",REPT(" ",1000)),1000))
2> Công thức cho cell C1:
Mã:
=--TRIM(RIGHT(SUBSTITUTE(TRIM(SUBSTITUTE(SUBSTITUTE(MID($A1,1,FIND("(",$A1)-1),"Km",""),"+","")),"÷",REPT(" ",1000)),1000))

Em cảm ơn thầy nhiều, nhìn công thức choáng luôn, thầy cho em hỏi tại sao lại có 2 dấu gạch ngang ở trước hàm trim ạ, với trong file em gửi thầy còn có 1 yêu cầu nhờ thầy giúp công thức ở ô C1 để tách trái, phải riêng nữa, thầy xem giúp em với
 
Upvote 0
Em cảm ơn thầy nhiều, nhìn công thức choáng luôn, thầy cho em hỏi tại sao lại có 2 dấu gạch ngang ở trước hàm trim ạ, với trong file em gửi thầy còn có 1 yêu cầu nhờ thầy giúp công thức ở ô C1 để tách trái, phải riêng nữa, thầy xem giúp em với

Có 2 dấu -- để chuyển chuỗi thành số. Bạn thử bỏ 2 dấu -- để kiểm chứng kết quả
Công thức D1 dễ rồi:
Mã:
=IF(COUNTIF(A1,"*(trái *"),B1,C1)
 
Upvote 0
Có 2 dấu -- để chuyển chuỗi thành số. Bạn thử bỏ 2 dấu -- để kiểm chứng kết quả
Công thức D1 dễ rồi:
Mã:
=IF(COUNTIF(A1,"*(trái *"),B1,C1)
Không hiểu sao em gõ công thức ở ô D1 lại không tách ra kết quả trái, hoặc phải, mà lại ra toàn giá trị số thôi thầy ạ
 
Upvote 0
Bạn xem file đính kèm xem đúng ý bạn chưa?

B1 = --TRIM(SUBSTITUTE(SUBSTITUTE(LEFT(A1;FIND(".";A1)-1);"Km";"");"+";""))

C1 = IF(MID(A1;FIND("(";A1)+1;1)="t";SUBSTITUTE(MID(A1;FIND("Km";A1;2)+2;FIND("(";A1)-FIND("Km";A1;2)-2);"+";"");--SUBSTITUTE(MID(A1;FIND("Km";A1;2)+2;FIND(".";A1;FIND("÷";A1))-FIND("Km";A1;2)-2);"+";""))

D1 = MID(A1;FIND("(";A1)+1;4)
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom