Home » excel » vba – How do I compare text in Excel cells to see if same words are found?

vba – How do I compare text in Excel cells to see if same words are found?

Posted by: admin May 14, 2020 Leave a comment

Questions:

I have several rows of Excel cells which contain a string of words, all separated by commas. I want to compare each cell with another cell to check if any of the words match/are duplicates.
For example:

cell A1: dog, cat, rabbit, mouse, lion, bear, tiger
cell A2: sausage, pickle, dog, cat, elephant, bread

result: dog, cat

The result could also be a number (e.g. 2) if that is easier.
Many thanks!

How to&Answers:

I think you would be best served using VBA which you could then deploy as a User Defined Function (UDF)

  • hold down to go to the VBE
  • Insert … Module
  • copy and paste in the code below
  • hold down to go back to Excel

Then call the function in Excel such as
=DupeWord(A1,A2)
to find any matches between A1 and A2

enter image description here

Usr Defined Function

Function DupeWord(str1 As String, str2 As String) As String
Dim vArr1
Dim vArr2
Dim vTest
Dim lngCnt As Long
vArr1 = Split(Replace(str1, " ", vbNullString), ",")
vArr2 = Split(Replace(str2, " ", vbNullString), ",")
On Error GoTo strExit

For lngCnt = LBound(vArr1) To UBound(vArr1)
vTest = Application.Match(vArr1(lngCnt), vArr2, 0)
If Not IsError(vTest) Then DupeWord = DupeWord & vArr1(lngCnt) & ", "
Next lngCnt
If Len(DupeWord) > 0 Then
DupeWord = Left$(DupeWord, Len(DupeWord) - 2)
Else
strExit:
DupeWord = "No Matches!"
End If

End Function

Use inside VBA

Sub test()
MsgBox DupeWord("dog, cat, rabbit, mouse, lion, bear, tiger", "sausage, pickle, dog, cat, elephant, bread")
End Sub

Answer:

From here

To check if the string is equal to another you can use Exact
=EXACT(text1,text2)

Text1 is the first text string.

Text2 is the second text string.