Excel 带匹配的间接函数

Excel Indirect function with Match

我目前正在使用下面的公式,它 return 出错了。

我想做的是 select 使用间接函数 select 价格工作表中的整个列,然后 return 基于 2 个标准的该列的值。 我不确定我哪里出错了。任何帮助将不胜感激。

=INDEX(INDIRECT("价格!J2:J2"),匹配(F5,价格!B:B,0),匹配(D5,价格!A:A,0))

下面的代码对我有用,但不够健壮。我想让 INDIRECT 工作

=INDEX(Prices!BO:BO,MATCH(1,(D2=Prices!A:A)*(F2=Prices!$B:$B),0))

查看以下错误:

谢谢!

看起来您正在尝试查找 B 列中 F2 的值,然后 return J 列中的相应条目。如果是这样,那么这是正确的语法:

=INDEX(Prices!J:J,MATCH(F2,Prices!B:B,0),1)

如果您添加 INDIRECT,它也有效:

=INDEX(INDIRECT("Prices!J:J"),MATCH(F2,Prices!B:B,0),1)

这个网站是使用索引和匹配的一个很好的参考:

https://exceljet.net/index-and-match

编辑:来自帮助提问者找到解决方案的聊天的更多相关信息:

要使上述公式中的“J”列可从单元格 F2 调整,请像这样连接地址:

INDIRECT("Prices!"&J2&":"&J2)

因此,如果您将“C”放入单元格 J2,则 INDIRECT 将引用“价格!C:C”,然后 INDEX 将从 C 列查找您的数据。

至于 MATCH 语法,不要这样做:

=INDEX(INDIRECT("Prices!"&J2&":"&J2),MATCH(1,(F3=Prices!B:B)‌​*(D3=Prices!$A:$A),0‌​))

相反,连接 F3 和 D3,将 A 列和 B 列数据连接到 A 列,然后进行 MATCH,如下所示:

=INDEX(INDIRECT("Prices!"&J2&":"&J2),MATCH(D3&F3,Prices!A:A​,0‌​))