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.
dog, cat, rabbit, mouse, lion, bear, tiger
sausage, pickle, dog, cat, elephant, bread
The result could also be a number (e.g. 2) if that is easier.
I think you would be best served using VBA which you could then deploy as a
User Defined Function (UDF)
- hold down altf11 to go to the VBE
- Insert … Module
- copy and paste in the code below
- hold down altf11 to go back to Excel
Then call the function in Excel such as
to find any matches between A1 and A2
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
To check if the string is equal to another you can use
Text1 is the first text string.
Text2 is the second text string.