Excel公式修改需求:实现整行多条件匹配返回布尔值
Excel公式修改需求:实现整行多条件匹配返回布尔值
嘿,我完全懂你的问题啦——你现在的公式只是分别检查每一列里有没有对应的内容,但根本不管这些匹配项是不是在同一行,对吧?这就会导致哪怕三个条件的值分散在工作表的不同行里,公式也会返回true,完全不是你想要的效果。
下面分两种场景给你解决方案:
场景1:检查整个「Target Book」工作表是否存在符合条件的行
如果你要确认整个工作表里有没有任意一行同时满足:A列是"Person's Name"、D列是"D"、F列是"1",推荐用COUNTIFS函数——它专门用来统计同一行满足多个条件的行数,非常适合你的需求:
=COUNTIFS('Target Book'!$A:$A,"Person's Name", 'Target Book'!$D:$D,"D", 'Target Book'!$F:$F,"1")>0
公式解释:
COUNTIFS会遍历每一行,只有当A、D、F列的内容同时符合三个条件时,才会计数- 最后判断计数结果是否大于0:如果大于0,说明存在这样的行,返回
true;否则返回false
如果你用的是比较旧的Excel版本(没有COUNTIFS函数),可以用SUMPRODUCT替代:
=SUMPRODUCT(--('Target Book'!$A:$A="Person's Name"), --('Target Book'!$D:$D="D"), --('Target Book'!$F:$F="1"))>0
替代公式解释:
--的作用是把Excel的布尔值(true/false)转换成数字1和0SUMPRODUCT会逐行将三个条件的转换结果相乘:只有当三个条件都满足时,乘积为1,否则为0- 最后将所有行的乘积相加,总和大于0就说明存在符合条件的行
场景2:判断当前行是否符合条件
如果你是要在某一行输入公式,直接判断该行的A、D、F列是否满足条件(比如在第1行判断A1、D1、F1),那用AND函数就够了,简单直接:
=AND($A1="Person's Name", $D1="D", $F1="1")
把这个公式往下拖动填充,就能自动判断每一行是否符合要求啦。
备注:内容来源于stack exchange,提问作者user1762802
相关产品推荐
相关产品推荐

