首页 > 解决方案 > 是否可以通过 OR 语句使用具有多个条件的 INDEX 和 MATCH?

问题描述

我正在尝试在 match() 函数的第二个条件上使用多个范围条件和 OR() 选项。如果我要使用第三个标准,它将是包容性的并跳过我试图定位的值。

目前有这个:

=CELL("row",INDEX($D$69:$I$215,MATCH(1,(E30=E69:E215)*("Buy"=G69:G215),0),2))

**有没有办法让它工作?**

=MATCH(1,(E30=INDIRECT("E"  & C30 & ":E" & C27)* **OR( ("Buy"=INDIRECT("G"&C30&":G"&C27)),("Reinvestment"=INDIRECT("G"&C30&":G"&C27))**)),0)

标签: excelindexing

解决方案


一、避免使用,CELL因为它易挥发。你可以简单地做:

=MATCH(1,(E30=E69:E215)*("Buy"=G69:G215),0)+MIN(ROW(E69:E215))-1

二、OR在数组公式中做一个可以使用+和替换INDIRECT,它也可以用INDEX volatile

=MATCH(1,(E30=INDEX(E:E,C30):INDEX(E:E,C27))*(("Buy"=INDEX(G:G,C30):INDEX(G:G,C27))+("Reinvestment"=INDEX(G:G,C30):INDEX(G:G,C27))),0)+C30-1

根据 One 的版本,这可能需要在退出编辑模式时使用 Ctrl-Shift-Enter 而不是 Enter 来确认。

也可以使用 AGGREGATE:

=AGGREGATE(15,7,ROW(INDEX(E:E,C30):INDEX(E:E,C27))/((E30=INDEX(E:E,C30):INDEX(E:E,C27))*(("Buy"=INDEX(G:G,C30):INDEX(G:G,C27))+("Reinvestment"=INDEX(G:G,C30):INDEX(G:G,C27)))),1)

不需要 CSE 条目。


推荐阅读