Dạ em cảm ơn anh .Công thức hơi rắc rối. Dùng hàm UDF tiện hơn
Function TextPurge(s1 As String, s2 As String) As String
' Purges all elements of string s2 from string s1
' eg: s1 = "A1,A2,A3,A4,A5"; s2 = "A3,A5"; returns = "A1,A2,A4"
Const DELIM = ","
Dim e
TextPurge = DELIM & s1 & DELIM
For Each e In Split(s2, DELIM)
TextPurge = Replace(TextPurge, DELIM & e & DELIM, DELIM)
Next e
If Len(TextPurge) > 2 Then
TextPurge = Mid(TextPurge, 2, Len(TextPurge) - 2)
Else
TextPurge = ""
End If
End Function
Thử dùng hàm TEXTJOIN có trong Excel(>=2019)Chào anh chị . Em cần giúp đỡ lọc lại những vị trí còn tồn . Dữ liệu như sau :
Vị trí nhập Vị trí xuất Vị trí còn lại A1,A2,A3,A4,A5 A3,A5 A1,A2,A4
Mong anh chị cho em xin công thức hoặc code VBA để lọc lại những vị trí còn tồn . Em cảm ơn
=TEXTJOIN(",",1,IF(NOT(MMULT(N(TRIM(MID(SUBSTITUTE(A2,",",REPT(" ",100)),(ROW($1:$30)-1)*100+1,100))=TRANSPOSE(TRIM(MID(SUBSTITUTE(B2,",",REPT(" ",100)),(ROW(INDIRECT("1:"&1+LEN(B2)-LEN(SUBSTITUTE(B2,",",""))))-1)*100+1,100)))),ROW(INDIRECT("1:"&1+LEN(B2)-LEN(SUBSTITUTE(B2,",",""))))^0)),TRIM(MID(SUBSTITUTE(A2,",",REPT(" ",100)),(ROW($1:$30)-1)*100+1,100)),""))
Wow , e làm đc rồi . Cảm ơn anh nhiều nhaThử dùng hàm TEXTJOIN có trong Excel(>=2019)
View attachment 251635Mã:=TEXTJOIN(",",1,IF(NOT(MMULT(N(TRIM(MID(SUBSTITUTE(A2,",",REPT(" ",100)),(ROW($1:$30)-1)*100+1,100))=TRANSPOSE(TRIM(MID(SUBSTITUTE(B2,",",REPT(" ",100)),(ROW(INDIRECT("1:"&1+LEN(B2)-LEN(SUBSTITUTE(B2,",",""))))-1)*100+1,100)))),ROW(INDIRECT("1:"&1+LEN(B2)-LEN(SUBSTITUTE(B2,",",""))))^0)),TRIM(MID(SUBSTITUTE(A2,",",REPT(" ",100)),(ROW($1:$30)-1)*100+1,100)),""))
=SUBSTITUTE(TRIM(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2;",";" ");TRIM(MID(SUBSTITUTE(","&B2;",";REPT(" ";99));99*1;99));"");TRIM(MID(SUBSTITUTE(","&B2;",";REPT(" ";99));99*2;99));"");TRIM(MID(SUBSTITUTE(","&B2;",";REPT(" ";99));99*3;99));"");TRIM(MID(SUBSTITUTE(","&B2;",";REPT(" ";99));99*4;99));"");TRIM(MID(SUBSTITUTE(","&B2;",";REPT(" ";99));99*5;99));""));" ";",")
Em cảm ơn anh/chị nhiều nhaKhông có textjoin chơi kiểu nông dân cho dễ hiểu
Mã:=SUBSTITUTE(TRIM(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2;",";" ");TRIM(MID(SUBSTITUTE(","&B2;",";REPT(" ";99));99*1;99));"");TRIM(MID(SUBSTITUTE(","&B2;",";REPT(" ";99));99*2;99));"");TRIM(MID(SUBSTITUTE(","&B2;",";REPT(" ";99));99*3;99));"");TRIM(MID(SUBSTITUTE(","&B2;",";REPT(" ";99));99*4;99));"");TRIM(MID(SUBSTITUTE(","&B2;",";REPT(" ";99));99*5;99));""));" ";",")