Tôi có chuỗi
B4 = Cho bài toán 512:8+1588*13*(14-7) hãy cho kết quả ?
Tôi muốn tách 512:8+1588*13*(14-7) ra khỏi chuỗi trên thì làm thế nào?
Mong các Anh Em trên GPE giúp đỡ
Cho bạn code:
Function tach(text As String)
With CreateObject("vbscript.regexp")
.Global = True: .Pattern = "[^0-9+-*/()^:]"
tach = .Replace(text, "")
End With
End Function
Giải sữ dữ liệu bạn tại A1, bạn dùng CT này ở B1:
B1=tach(A1)
www.giaiphapexcel.com/diendan/threads/gi%C3%BAp-t%C3%A1ch-b%C3%A0i-to%C3%A1n-ra-kh%E1%BB%8Fi-chu%E1%BB%97i.127686/
hi công thức thì tốt học ké 1 chút 😀 chứ vba sao anh biết ^^
anh tính dùng isnumber kết hợp row lấy vị trí số sau đó dùng mid lấy ra 1 chuỗi nhưng lại bí ý tiếp theo
Dữ liệu tại A1, anh dùng CT quá khổ này xem:
=TRIM(LOOKUP(2,1/MMULT(IFERROR(FIND({"+","-","*",":"},TRIM(MID(SUBSTITUTE(A1," ",REPT(" ",200)),(ROW($1:$100)-1)*200+1,200))),0),{1;1;1;1}),MID(SUBSTITUTE(A1," ",REPT(" ",200)),(ROW($1:$100)-1)*200+1,200)))
Để tìm xem có CT nào gọn hơn không!!!
Cách đấy cũng được, nhưng còn thiếu, vì là công thức nên dấu "(" có thể ở đầu câu, công thức gọn hơn đây
=TRIM(LOOKUP("z",LEFT(SUBSTITUTE(MID(A1,FIND(" "&SUBSTITUTE(ROW($1:$11)-1,10,"("),A1)+1,1000)," ",REPT(" ",200)),200)))
hi anh sẽ -1 vì dù sao trước nó là khoảng trống hoặc dấu "(" nhưng 2 dấu ngoặc thì ngu người 😀
-1 chưa chắc đúng nếu khoảng trắng rồi đến dấu "(" thì sẽ thiếu , ví dụ "xxx (45+4)/7 dddd" thì phải -2, cứ làm theo hướng anh nghĩ xem sao!!!
Hi lỡ làm thôi làm đại, dài và nặng haha
=TRIM(LEFT(SUBSTITUTE(TRIM(MID(A1,SMALL(IFERROR(SIGN(MID(A1,ROW($1:$100),1)*1)*ROW($1:$100),FALSE),1)-1,100))," ",REPT(" ",100)),100))
www.giaiphapexcel.com/diendan/threads/127686
Khóa học Power PI – Ứng dung trong Nhân sự
TỔNG QUAN KHÓA HỌC: POWER BI CHO NGÀNH NHÂN SỰ Khóa học Power BI cho Nhân sự được thiết kế dành riêng cho các...
Xem khóa học