如果单元格(部分)包含 Excel 中列表(另一列)中的文本,如何对列应用条件格式?

如果单元格(部分)包含 Excel 中列表(另一列)中的文本,如何对列应用条件格式?

我有一列包含供应商销售的产品列表,这些产品的名称很复杂,有很多单词。我还有另一列包含通用产品名称列表(大部分都是一个单词)。

现在我想突出显示第一列中的单元格,如果它们包含第二列中的单词。它们不必完全匹配,只需包含一个或多个这些单词即可。

例如:“罗勒 1 包 50 克”,应突出显示,因为“罗勒”在另一个列表中。

答案1

使用以下条件格式规则。

=(SUM(IF(ISNUMBER(SEARCH($F$3:$F$6,B3,1)),1,0))>=1)

请参阅下面的屏幕截图以获取示例数据。

在此处输入图片描述

在此处输入图片描述

应用于单个单元格,在本例中为 B3,然后使用格式刷应用于所有适用单元格。

答案2

使用 FIND 测试一段文本是否在另一段文本中。诀窍在于,FIND 将接受一个范围作为输入,以准确执行您想要的操作,并返回一个数组,其中包含范围内每个项目的第一个匹配字符的编号,或对于未找到的项目返回 #VALUE 错误。

然后,您可以通过简单计算该数组中有多少个数字将该数组转换为“是/否” - 如果它们都是错误,则得到 0,否则得到 1。

所以这可以归结为一个简单的公式:

=COUNT(FIND($X$1:$X$4,C2))

其中 X1:X4 是通用产品列表,C2 是要检查的单元格。您可以在辅助列中轻松测试此公式,以确保配置正确(例如,列表范围为 $,因此它不会移动)。

要在条件格式中使用它,请使用公式添加新条件并输入:

=COUNT(FIND($X$1:$X$4,C2))>0

确保 C2 是所选范围内应应用该格式的第一个单元格。

这种方法的缺点是,或者实际上解决此类问题的任何方法的缺点是,如果您有大量数据列表需要与另一个长列表进行核对,则需要同时进行许多文本搜索,性能会很差,因此您可能需要关闭自动计算。

相关内容