我有一列包含供应商销售的产品列表,这些产品的名称很复杂,有很多单词。我还有另一列包含通用产品名称列表(大部分都是一个单词)。
现在我想突出显示第一列中的单元格,如果它们包含第二列中的单词。它们不必完全匹配,只需包含一个或多个这些单词即可。
例如:“罗勒 1 包 50 克”,应突出显示,因为“罗勒”在另一个列表中。
答案1
答案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 是所选范围内应应用该格式的第一个单元格。
这种方法的缺点是,或者实际上解决此类问题的任何方法的缺点是,如果您有大量数据列表需要与另一个长列表进行核对,则需要同时进行许多文本搜索,性能会很差,因此您可能需要关闭自动计算。