两个相同参数的结果不同

时间:2019-01-08 11:27:46

标签: excel

我使用了两个IF函数来查找范围的最大值,但是如果我使用AND函数对函数进行了些微更改,则返回0。请帮忙。

这有效并返回整数:

question-div

这个总是返回0:

{=MAX(IF(MONTH(A58:A67)=MONTH(K50),IF(YEAR(A58:A67)=YEAR(K50),B58:B67)))}

1 个答案:

答案 0 :(得分:1)

大多数人不能在数组上下文中正确使用AND

在您的示例中

IF(MONTH(A58:A67)=MONTH(K50),IF(YEAR(A58:A67)=YEAR(K50),B58:B67))

评估为

IF({TRUE;FALSE;TRUE;FALSE;...;FALSE}, IF({FALSE;TRUE;TRUE;FALSE;...;TRUE}, {B58:B67}))

取决于MONTH(A58:A67)=MONTH(K50)TRUE还是FALSE,而YEAR(A58:A67)=YEAR(K50)TRUE还是FALSE

这意味着如果第一个是TRUE,然后检查第二个,如果第二个也是TRUE,则将数组{B58:B67}中的相应值放入MAX中,否则将FALSE的{​​{1}}放入0

但是

MAX

评估为

IF(AND(MONTH(A58:A67)=MONTH(K50),YEAR(A58:A67)=YEAR(K50)),B58:B67)

因此,两个IF(AND({TRUE;FALSE;TRUE;FALSE;...;FALSE},{FALSE;TRUE;TRUE;FALSE;...;TRUE}),{B58:B67})数组都在{TRUE;FALSE;...}中,并且如果两个数组中都没有单个AND,则只有{{1} }}在TRUE中算作FALSE

即使两个数组中都不存在单个FALSE,但整个数组0始终是MAX中的结果。