Excel 索引匹配公式有效,但不在COUNTIFS或IF语句中

Excel 索引匹配公式有效,但不在COUNTIFS或IF语句中,excel,excel-formula,vba,Excel,Excel Formula,Vba,我已经花了24个多小时来研究这个问题,并在这里广泛地寻找解决方案。在过去的几个月里,我一直在提高我的索引/匹配技能,但这次遇到了挑战。我相信这里会有人发现这个问题 我正在IF语句中运行INDEX/MATCH。只要使用1个条件匹配,一切都可以正常工作,我只需使用enter(似乎不需要使用Ctrl+Shift+enter)即可获得正确的结果 我得到了正确的结果。但是,如果我在if语句中的索引/匹配中再添加1个条件并单独按Enter键,则会出现#N/a错误。如果我使用Ctrl+Shift+Enter,

我已经花了24个多小时来研究这个问题,并在这里广泛地寻找解决方案。在过去的几个月里,我一直在提高我的
索引/匹配
技能,但这次遇到了挑战。我相信这里会有人发现这个问题

我正在IF语句中运行
INDEX/MATCH
。只要使用1个条件匹配,一切都可以正常工作,我只需使用enter(似乎不需要使用Ctrl+Shift+enter)即可获得正确的结果

我得到了正确的结果。但是,如果我在if语句中的
索引/匹配
中再添加1个条件并单独按Enter键,则会出现
#N/a
错误。如果我使用Ctrl+Shift+Enter,我会得到错误的结果(If
语句的假值)

带有两个标准的
索引/匹配公式
在单独使用时给出正确的输出

INDEX(transactions!$A:$E,MATCH(1,(transactions!$D:$D=UI$1)*(transactions!$A:$A<=C16),0),5)
但现在的问题是,当我在一个嵌套的
IF
语句中插入它时。我现在每次都会得到错误的结果(“留空”),这不是期望的结果

IF(COUNTIFS(transactions!$D:$D,INDIRECT(ADDRESS(1,COLUMN(),1)),transactions!$A:$A,"<="&INDIRECT("C"&ROW()))>0, IF(INDEX(transactions!$A:$E,MATCH(1,(transactions!$D:$D=UI$1)*(transactions!$A:$A<=C16),0),5)=$A16,"DNP","with " & INDEX(transactions!$A:$E,MATCH(UI$1,transactions!$D:$D,0),5)), IF(COUNTIFS(stats!$B:$B,INDIRECT(ADDRESS(1,COLUMN(),1)),stats!$A:$A,INDIRECT("A"&ROW()))=1,"DNP","LEAVE BLANK"))

IF(COUNTIFS(事务!$D:$D,间接(地址(1,COLUMN(),1)),事务!$A:$A,”所有组件(3个不同的IF语句)单独使用会分别给出正确的响应。但是,组合的公式一起总是给出默认的错误结果。但是,我返回并再次查看间接结果。我将它们全部更改为直接单元格引用,并且有效

请显示具有多个条件索引/匹配的IF公式。单个IndexMatch不是数组公式,因此不需要CSE,但倍数确实需要CSE。Hi@ScottCraner。我用附加信息更新了原始帖子。indirect会引发一个警告标志…indirect在同一工作簿中处理的地址是同一工作簿还是已经打开的工作簿?如果答案是肯定的,则无需担心。如果t他回答是否定的,这可能是正确的答案issue@ForwardEd是的。实际上在同一张表中。我找不到更好的方法来引用列中的第一行,因为我正在通过宏运行此公式(最终)
行(a$1)
将始终是第1行,因为$,并且a将随着单元格的左右复制而更新
IF(INDEX(transactions!$A:$E,MATCH(1,(transactions!$D:$D=UI$1)*(transactions!$A:$A<=C16),0),5)=$A16,"DNP","with " & INDEX(transactions!$A:$E,MATCH(UI$1,transactions!$D:$D,0),5))
IF(COUNTIFS(transactions!$D:$D,INDIRECT(ADDRESS(1,COLUMN(),1)),transactions!$A:$A,"<="&INDIRECT("C"&ROW()))>0, IF(INDEX(transactions!$A:$E,MATCH(1,(transactions!$D:$D=UI$1)*(transactions!$A:$A<=C16),0),5)=$A16,"DNP","with " & INDEX(transactions!$A:$E,MATCH(UI$1,transactions!$D:$D,0),5)), IF(COUNTIFS(stats!$B:$B,INDIRECT(ADDRESS(1,COLUMN(),1)),stats!$A:$A,INDIRECT("A"&ROW()))=1,"DNP","LEAVE BLANK"))