![如果列包含值并且这些行包含另一个值,则使用条件格式](https://linux22.com/image/1641971/%E5%A6%82%E6%9E%9C%E5%88%97%E5%8C%85%E5%90%AB%E5%80%BC%E5%B9%B6%E4%B8%94%E8%BF%99%E4%BA%9B%E8%A1%8C%E5%8C%85%E5%90%AB%E5%8F%A6%E4%B8%80%E4%B8%AA%E5%80%BC%EF%BC%8C%E5%88%99%E4%BD%BF%E7%94%A8%E6%9D%A1%E4%BB%B6%E6%A0%BC%E5%BC%8F.png)
我正在寻找一种方法来使用两个条件对列中的单元格进行条件格式化(突出显示):
- 如果单元格值存在于 A 列中
- 如果相应“B”单元格中的值包含特定值
例子:
步骤1
- D1 是否存在于 A 列中 -是的
第2步
- 单元格 B1、B4 或 B8 是否包含值 (“asd”) -是的
注意:A1、A4 和 A8 是包含 D1 中的值(在本例中为 123)的所有单元格,并且值“asd”可以是我手动输入的任何值
结果突出显示单元格 D1
另请注意:
*COUNTIFS() 在这种情况下不起作用,因为目的是能够将条形码扫描到 D 列,并在单独扫描所有 1000 个条形码时询问该条形码是否为“asd”。 如果是,则将箱子放在这个托盘上,如果不是,则将箱子放在另一个托盘上。
我还想使硬编码值动态化以解决潜在的拼写错误,比如说我正在扫描“asd”,但“B”列中的值被错误地写为“asdf”。*
答案1
在 D 列上使用此条件格式公式(如果需要,调整范围)。
=AND($D1<>"",IF(SUM(--(IF($A$1:$A$8=D1,$B$1:$B$8,"")="asd")),TRUE,FALSE))
注意,asd
公式中是硬编码的。引用另一个包含的单元格可能是一个更好的主意asd
,这样在需要时更新会更容易。
(Excel 的黄金法则是尽可能使用单元格引用!切勿将值硬编码到公式中)
解释:
这IF(SUM(--(IF($A$1:$A$8=D1,$B$1:$B$8,"")="asd")),TRUE,FALSE)
将查看 B 列(与与 D 列匹配的 A 列单元格相邻)中任何单元格是否等于asd
。
--(TRUE, FALSE)
变成(1,0)
幕后操作,因此,如果 B 列中的任何值匹配asd
,则可以将其相加,如果总和大于 1,则表明匹配成功。