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
Mặc dù rất cố gắng nhưng lần nào mình cũng gửi sau bạn vậy ^.^Bạn dùng Function này thử xem ( CT mình viết tại ô H5)
Mặc dù rất cố gắng nhưng lần nào mình cũng gửi sau bạn vậy ^.^
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 ạ!
=LEFT(E5,COUNT(--LEFT(E5,ROW($1:$15))))
Public Function TachSo(ByVal Text As String) As Double
TachSo = Val(Text)
End Function
bạn vào đây tham khảo nha. có nhiều cái hay lắmNhâ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 ạ!
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ì:
Ctrl + Shift + EnterMã:=LEFT(E5,COUNT(--LEFT(E5,ROW($1:$15))))
Nếu dùng VBA thì:
Chỉ vậy thôi là đủMã:Public Function TachSo(ByVal Text As String) As Double TachSo = Val(Text) End Function
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 ạ
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ì:
Chỉ vậy thôi là đủMã:Public Function [COLOR=#ff0000]TachSo(ByVal Text As String)[/COLOR] As Double TachSo = Val(Text) End Function
Em gửi file lên thầy kiểm tra giúp em với, em cảm ơn!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)
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ú !
Em gửi file lên thầy kiểm tra giúp em với, em cảm ơn!
=--TRIM(LEFT(SUBSTITUTE(TRIM(SUBSTITUTE(SUBSTITUTE(MID($A1,1,FIND("(",$A1)-1),"Km",""),"+","")),"÷",REPT(" ",1000)),1000))
=--TRIM(RIGHT(SUBSTITUTE(TRIM(SUBSTITUTE(SUBSTITUTE(MID($A1,1,FIND("(",$A1)-1),"Km",""),"+","")),"÷",REPT(" ",1000)),1000))
Dùng phương pháp tách tên mà làm:
1> Công thức cho cell B1:
2> Công thức cho cell C1:Mã:=--TRIM(LEFT(SUBSTITUTE(TRIM(SUBSTITUTE(SUBSTITUTE(MID($A1,1,FIND("(",$A1)-1),"Km",""),"+","")),"÷",REPT(" ",1000)),1000))
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
=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 ạ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 ạ
thầy có thể cho em tài liệu liên quan đến mấy cái ký tự đó không thầy. tại sao lại biết -- là chuyển text sang value. có vài công thức em thấy có mấy dấu phẩy liên tiếp nhau ấy. hình như là offset thì phải. học tin học căn bản thì chả được biết mấy cái đó với mấy vụ hàm dò tìm offset index với mảng.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)
thầy có thể cho em tài liệu liên quan đến mấy cái ký tự đó không thầy. tại sao lại biết -- là chuyển text sang value. có vài công thức em thấy có mấy dấu phẩy liên tiếp nhau ấy. hình như là offset thì phải. học tin học căn bản thì chả được biết mấy cái đó với mấy vụ hàm dò tìm offset index với mảng.
dạ ý em là chữ "phải" đó thầy, em thấy anh thangbithu gửi công thức đúng ý em rồi, em cảm ơn mọi người rất nhiều ạCụ thể tại cell D1 bạn muốn kết quả là gì? Là 1801000 hay chữ "phải"
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)
Đã là box lập trình thì không nên dung hàm. Xin góp vui với mọi người bằng file
Đã là box lập trình thì không nên dung hàm. Xin góp vui với mọi người bằng file
Bạn xem lại yêu cầu của bạn Genius111. Là mình thừa hay bạn thiếu ^^. Xem ở ô C3Có lẻ bạn cũng mới bước vào VBA, nhưng như vậy là bạn có sự cố gắng rất tuyệt vời.
Tuy nhiên kết quả chưa chính xác bạn ơi, mình copy ra đây 2 dòng để bạn thấy
[TABLE="width: 446"]
[TR]
[TD]1801000[/TD]
[TD]1801403,02[/TD]
[TD]Trái[/TD]
[/TR]
[TR]
[TD]1801000[/TD]
[TD]1801403,02[/TD]
[TD]Phải[/TD]
[/TR]
[/TABLE]
Thừa chữ màu đỏ.
Bạn xem lại yêu cầu của bạn Genius111. Là mình thừa hay bạn thiếu ^^. Xem ở ô C3
Hi mình chỉ muốn bạn down lại file ở #13 xem ô C3 tác giả để gì???Mình không muốn tranh cãi với bạn, file mình làm bằng hàm đã được chủ thớt xác định là đúng yêu cầu, đối chiếu với kết quả của bạn thì mình thấy dư phần chữ đỏ, vậy thôi.
Ô C3 thể hiện: nếu là trái thì lấy luôn 2 số sau dấu , còn nếu là phải thì chỉ lấy các con số trước dấu , thôi, không biết mình hiểu vậy có sai không?
Thôi thì mình cũng chiều bạn 1 lần vậy, mình đã làm đúng lời bạn và mình copy ra đây luônHi mình chỉ muốn bạn down lại file ở #13 xem ô C3 tác giả để gì???
Đấy có thể do định dạng máy tính giữa"." và ",". Bây giờ bạn thử xem lại file bạn cắt cụt đến đâu. 1m lệch ở công trình bạn biết tác hại ra sao???. Nhiều tác giả mừng quá mà cũng ko nhớ mình yêu cầu gì bạn ạ ^^Thôi thì mình cũng chiều bạn 1 lần vậy, mình đã làm đúng lời bạn và mình copy ra đây luôn
[TABLE="width: 242"]
[TR]
[TD]1800700[/TD]
[TD]1801000[/TD]
[TD]phải[/TD]
[/TR]
[TR]
[TD]1800700[/TD]
[TD]1801000[/TD]
[TD]phải[/TD]
[/TR]
[TR]
[TD]1801000[/TD]
[TD]1801403.02[/TD]
[TD]trái[/TD]
[/TR]
[/TABLE]
bạn xem nhé.
hì ý em là công thức ở cột D của anh đúng với yêu cầu của em, còn ở cột B và C thì như ý anh doatmenhhon mới đúng, nhưng vì em lấy công thức của thầy Ndu ở 2 cột đó rồi nên không đề cập tới 2 cột đó nữaMình không muốn tranh cãi với bạn, file mình làm bằng hàm đã được chủ thớt xác định là đúng yêu cầu, đối chiếu với kết quả của bạn thì mình thấy dư phần chữ đỏ, vậy thôi.
Ô C3 thể hiện: nếu là trái thì lấy luôn 2 số sau dấu , còn nếu là phải thì chỉ lấy các con số trước dấu , thôi, không biết mình hiểu vậy có sai không?