识别一个列表中以不同形式出现在另一个列表中的条目

时间:2014-02-05 15:31:12

标签: excel compare excel-formula worksheet-function conditional-formatting

我有两个名单列表,并希望突出显示列表1中列表2中存在的姓氏的单元格。问题是我可能需要此重复列表以包含通配符。

列表1包含以下格式的名称:

W. Viitala
T. Saarinen
I. Äijälä

列表2只包含:

Viitala
Saarinen
Äijälä

此外,这可能需要包括某种删除外来字符的功能,例如:Äijälä到Aijala,因为它们有时可能包含在列表2中?

这可能吗?

此外,是否可以自动删除逗号并用新行替换它们?以便可以粘贴以下名称,但每个名称都在新行中?

Viitala,Saarinen,Äijälä

不是从OP编辑,而是从OP的评论中编辑链接到示例:

http://gyazo.com/9bec82c67b76f6073491f53580945de4

3 个答案:

答案 0 :(得分:0)

我已经使用VBA完成了这项工作。我找不到将1 Cell与柱子进行比较的方法。

你知道如何使用VBA吗? 有这个功能:InStr(起始位置,string1,string2)

Sub findDuplicated()

For i = 2 To Range("A1").End(xlDown).Row      'values to be highlighted
    For j = 2 To Range("B1").End(xlDown).Row  'strings to be searched
       If InStr(1, Cells(i, 1).Value, Cells(j, 7).Value) <> 0 Then      ' if it is found
            Cells(i, 1).Interior.Color = RGB(255, 255, 0)             ' highlight list1
            Cells(j, 7).Interior.Color = RGB(255, 255, 0)             ' highlight list2
       End If
    Next j
Next i
End Sub

如果存在任何B列值,它将在A列进行搜索。它们匹配,它将突出显示在A列找到的匹配。 这是你想要的吗?

此外,您可以使用删除字符。您需要为要替换的每个字符调用此函数:

Sub commaToDot(char1,char2)
    Range("B1:B50").Select           ' here you select your range
    For Each Cell In Selection
        Cell.Value = Replace(Cell.Value, char1, char2)       ' it replaces char1 for char2
    Next
End sub

答案 1 :(得分:0)

这不是一个完整的证明解决方案,但可能有所帮助: 假设A1中的List1:A10和B1中的List2:B10

在B1:B10中应用条件格式 - 新规则 - 使用公式确定要格式化的单元格

写下这个公式:

=COUNTIF($A1:$A10;"*" & B1 & "*")>0

答案 2 :(得分:0)

使用以下规则进行条件格式化:

=ISNUMBER(MATCH(MID(A1,FIND(" ",A1)+1,LEN(A1)),G:G,0))  

适用于A:A似乎适合OP。