【问题标题】:vlookup or index match to list names one below the other as an Arrayvlookup 或索引匹配以将名称一个在另一个下面作为数组列出
【发布时间】:2016-09-01 11:55:28
【问题描述】:

我正在尝试在另一个满足分数的名称下方列出。在我的情况下,它需要超过 7,我使用 =INDEX($B$2:$B$16, SMALL(IF($E$2<=$C$2:$C$16, ROW($B$2:$B$16)-MIN(ROW($B$2:$B$16))+1, ""), ROW(A1))) 作为数组。

我得到的输出卡在 Test2 上。我究竟做错了什么。有没有更简单的方法来做到这一点

【问题讨论】:

  • 首先,您的公式正在与单元格 H2 进行比较,但是,根据您的屏幕截图,那不应该是 E2 吗?其次,这个子句: IF($H$2>=$C$2:$C$16,...,如果您考虑一下,实际上是在寻找 C2:C16 范围内小于或等于的值,不大于或等于H2中的值。第三,既然是数组公式,你记得用CTRL+SHIFT+ENTER提交吗?
  • 谢谢你,是的,我把代码改成了=INDEX($B$2:$B$16, SMALL(IF($E$2<=$C$2:$C$16, ROW($B$2:$B$16)-MIN(ROW($B$2:$B$16))+1, ""), ROW(A1))) 现在我得到的只是Test1
  • 那么作为数组公式提交的那一点呢?
  • 是的,它作为一个数组提交,我正在显示花括号
  • 您是否将其作为单单元格数组公式输入,即仅在单元格 G2 中,然后将其向下拖动到 G8?或者作为 MULTI-CELL 数组公式,即首先选择范围 G2:G8,然后在公式栏中输入该公式,然后提交?

标签: excel indexing match


【解决方案1】:

在这种情况下,我倾向于单单元格数组公式方法,即仅在单元格G2 中输入适当的数组公式,然后根据需要向下复制。

如果您也这样做,您当前的公式将按要求工作。

但是,当输入为 多单元格 数组公式时,即通过首先选择所需的范围(例如G2:G8),然后在公式栏中输入公式,然后提交,构造您正在使用 SMALLk 参数,即:

ROW(A1)

不会根据需要以行相对方式进行处理;事实上,对于公式的每个实例,它都将保持如上,而不是 - 就像我们复制等效的单单元格版本时那样 - 依次更新为:

ROW(A2)

ROW(A3)

ROW(A4)

...

等等

如果您坚持在此处继续使用多单元格数组公式,您将需要使用 unqualified ROW 作为此参数,即:

=INDEX($B$2:$B$16,SMALL(IF($E$2<=$C$2:$C$16,ROW($B$2:$B$16)-MIN(ROW($B$2:$B$16))+1,""),ROW()-1))

或者,由于上述不是很健壮,也不是灵活的(不合格,ROW() 取决于公式所在的行;因此,在您的情况下,由于您的第一个公式在第 2 行,我们需要将此值偏移 -1),我们可以使用更好的(虽然稍长一些):

=INDEX($B$2:$B$16,SMALL(IF($E$2<=$C$2:$C$16,ROW($B$2:$B$16)-MIN(ROW($B$2:$B$16))+1,""),ROW($B$2:$B$16)-MIN(ROW($B$2:$B$16))+1))

在任何情况下,即使对于单单元版本,ROW 在生成增量整数 (https://excelxor.com/2014/08/25/row-vs-rows-for-consecutive-integer-generation/) 方面也比 ROWS 更差,但遗憾的是,ROWS 也不是多单元版本的选择单元格版本,这也是我个人倾向于使用一系列单单元格数组公式而不是单个多单元格公式的原因之一。

我个人的偏好是单细胞数组公式:

=INDEX(B:B,SMALL(IF($E$2<=$C$2:$C$16,ROW($B$2:$B$16)),ROWS($1:1)))

并复制下来,尽管我也可能会添加一个子句来掩盖超出预期返回数量的单元格中的错误,例如:

=IF(ROWS($1:1)>A$1,"",INDEX(B:B,SMALL(IF($E$2<=$C$2:$C$16,ROW($B$2:$B$16)),ROWS($1:1))))

其中A1 包含一个计算预期回报数量的公式,例如:

=COUNTIF($C$2:$C$16,">="&$E$2)

这比资源密集型 IFERROR 设置 (https://superuser.com/questions/812727/look-up-a-value-in-a-list-and-return-all-multiple-corresponding-values) 更可取(尤其是在大范围内)。

我还应该说,如果要查询的数据构成 Excel 表的一部分,我会使用稍微不同的版本。

问候

【讨论】:

  • 感谢 Xor,这真的很有帮助。如果您使用单细胞单细胞公式,您的方法是什么?只是想看看你还能如何做到这一点
  • 添加到帖子底部。
  • 太棒了!太感谢了!上帝保佑。
猜你喜欢
  • 2016-02-14
  • 1970-01-01
  • 1970-01-01
  • 2016-02-17
  • 1970-01-01
  • 1970-01-01
  • 2017-07-06
  • 1970-01-01
  • 2013-07-14
相关资源
最近更新 更多