使用MAX+IF+NOT+OR函数求符合条件的最大时间出错排查
问题分析与修复方案
原公式的问题
未按数组公式要求执行输入
你的公式涉及多单元格的数组逻辑判断,在Excel 2016及更早版本中,这类公式必须通过Ctrl+Shift+Enter组合键完成输入(输入完公式别直接按回车)。如果只按回车,公式只会计算D3单元格的结果:如果D3是SYSTEM或VOID,就会返回FALSE(对应数值0,也就是12:00:00 AM),根本没遍历整个D3:D13区域。逻辑组合的隐含冲突
NOT(OR(...))的逻辑本身没错,但在数组运算中,当条件不满足时,IF函数会默认返回FALSE(数值0),MAX函数会把这些0和符合条件的时间值一并纳入计算。如果恰好第一个单元格不符合条件,又没触发数组运算,就直接返回0对应的时间。
可行的修复方案
方案1:修正输入方式
保留原公式,输入完成后按Ctrl+Shift+Enter,Excel会自动给公式添加大括号{},表示这是数组公式:=MAX(IF(NOT(OR(D3:D13="SYSTEM",D3:D13="VOID")),B3:B13))方案2:改用更直观的逻辑判断
把条件改成“D列既不是SYSTEM也不是VOID”,用*表示数组中的逻辑与(相当于AND),逻辑更清晰,同样需按Ctrl+Shift+Enter:=MAX(IF((D3:D13<>"SYSTEM")*(D3:D13<>"VOID"),B3:B13))方案3:使用MAXIFS函数(推荐)
如果你用的是Excel 2019或365版本,直接用MAXIFS函数,无需数组运算,写法简单不易出错:=MAXIFS(B3:B13,D3:D13,"<>SYSTEM",D3:D13,"<>VOID")
内容的提问来源于stack exchange,提问作者lhuiying
相关产品推荐
相关产品推荐

