Làm thế nào để so sánh 2 chuỗi ký tự và chỉ ra sự khác nhau

xinbintin

Thành viên mới
Tham gia ngày
12 Tháng mười hai 2017
Bài viết
16
Được thích
3
Điểm
165
Tuổi
28
Hi mọi người nhờ mọi người giúp em về hàm hay công thức VBA so sánh 2 chuỗi ký tự và chỉ ra ký tự khác nhau giữa chuỗi đó.
Ví dụ em có text1 : aabbcc . So sánh với text 2: aaggbb như vậy kết quả em cần là công thức chỉ ra ký tự khác nhau ở đây là gg
 

File đính kèm

hocexcel_1991

Bắt đầu học Excel
Tham gia ngày
9 Tháng bảy 2018
Bài viết
400
Được thích
675
Điểm
335
Nơi ở
Từ Sơn, Bắc Ninh
Hi mọi người nhờ mọi người giúp em về hàm hay công thức VBA so sánh 2 chuỗi ký tự và chỉ ra ký tự khác nhau giữa chuỗi đó.
Ví dụ em có text1 : aabbcc . So sánh với text 2: aaggbb như vậy kết quả em cần là công thức chỉ ra ký tự khác nhau ở đây là gg
Công thức áp dụng 2 chuỗi bằng nhau và chỉ khác 1 kí tự:.
Mã:
=IFERROR(MID(E3,AGGREGATE(14,6,ROW(INDIRECT("1:"&LEN(E3)))/NOT(MID(D3,ROW(INDIRECT("1:"&LEN(D3))),1)=MID(E3,ROW(INDIRECT("1:"&LEN(E3))),1)),1),1),"")
 

HeSanbi

Thành viên tích cực
Tham gia ngày
24 Tháng hai 2013
Bài viết
1,310
Được thích
1,207
Điểm
560
Áp dụng bằng VBA:

C1 = CompareString(A1, B1)

Không phân biệt hoa thường:
C1 = CompareString(A1, B1, True)
-----------
PHP:
Private Sub test_CompareString()
  Debug.Print CompareString("Abb", "Abb")
End Sub
Function CompareString(ByVal TextA As String, ByVal TextB As String, Optional ByVal CompareCase As Boolean = False) As String
  Static RE As Object
  If RE Is Nothing Then Set RE = CreateObject("VBScript.RegExp")
  With RE
    .Global = True
    .IgnoreCase = CompareCase
    .Pattern = "([\\\?\+\*\[\]\$\^\=\-\{\}\(\)\:\.\|])"
    TextA = .Replace(TextA, "\$1")
    .Pattern = "[" & TextA & "]"
    CompareString = .Replace(TextB, "")
  End With
End Function
 

xinbintin

Thành viên mới
Tham gia ngày
12 Tháng mười hai 2017
Bài viết
16
Được thích
3
Điểm
165
Tuổi
28
Top Bottom