通过匹配数组中的值来选取查找值

问题描述 投票:0回答:1

是否可以(在 Excel 2016 功能中)通过匹配二维数组中的值来从查找表中选取值?

例如在选项卡“LookupTab”上我有这个:

lookup array

在另一张纸上,我在 A 列中有数字,应在数组中(按列)查找这些数字。应使用可在数组中找到要查找的数字的第一行从“LookupTab”表的 A 列中选取该值,从上到下搜索数组的第一行,然后搜索第二行:

using the lookup array

我可以使用传统的 INDEX 和 MATCH 逻辑相互嵌套来完成此操作,如下所示: B2 中的公式为:

=IFERROR(INDEX(LookupTab!$A:$A,1+IFNA(MATCH($A2,LookupTab!$B$2:$B$99,0),IFNA(MATCH($A2,LookupTab!$C$2:$C$99,0),""))),"")
该公式被拉到 B 列中并且有效。

实际上,我有更多的数组列用于查找。在 B2 的公式中,我可以通过将最里面的 IFNA 替换值“”替换为

IFNA(MATCH($A2,LookupTab!$B$2:$B$99,0),"")
将新输入的公式部分的列字母B手动替换为新添加到数组中的列的列字母。这仍然是可行的,但是很麻烦并且容易出错。

我正在寻找一个没有嵌套的简单公式,在最好的情况下 Excel 2016 已经支持它。有什么想法吗?

arrays excel match formula
1个回答
0
投票

我认为在 lambda 等出现之前,你必须做这样的事情:

=IFERROR(INDEX(A$2:A$9,MATCH(1,MMULT(N(B$2:C$9=E4),ROW(A$1:A$2)^0),0)),"")

即将两列范围的元素与当前编号进行比较,得到一个由 1 和 0 组成的数组,然后找到该数组的行总计并匹配数组中的第一个 1,以获得所需值的索引.

enter image description here

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.