【问题标题】:How to index a list with array formula? (Google Sheets)如何使用数组公式索引列表? (谷歌表格)
【发布时间】:2020-11-11 06:14:42
【问题描述】:

我正在尝试使用索引从数组公式创建的列表中返回值。数组公式为:

aRRAYFORMULA(match(filter(full_list,startDate=N4,locationID=L4,service=M4),ID_list,0))

这个数组公式本质上是交叉引用过滤后的 full_list 和 ID_list 以返回 ID 在 full_list 和 ID_list 中的位置。我现在正试图将上面代码中的位置转换为在 ID_list 中找到的 ID。

我试过了:

aRRAYFORMULA(index(ID_list,ifna(match(filter(full_list,startDate=N3,locationID=L3,service=M3),ID_list,0),""),1))

和

arrayformula(index(ID_list,aRRAYFORMULA(match(filter(full_list,startDate=N4,locationID=L4,service=M4),ID_list,0))))

但它们只返回列表中第一个条目的 ID_list 值。所以说第一个公式返回 2 个行位置,4 和 20;我尝试过的公式的结果是一个单元格,其值为行位置 4。行位置 20 被忽略。

我在这里做错了什么,我该如何解决?或者,有没有更简单的方法来实现我想要的,比如没有数组公式?

【问题讨论】:

  • 分享您的工作表副本以及所需结果的示例
  • 这是一个非常复杂的工作表,其中包含超过 5 个其他电子表格链接 + 查询,以便获得 full_list 和 ID_list 的输出。我的问题是我有一个输出 4 行位置列表的数组公式。但是,当我使用数组公式周围的索引函数(如我上面给出的公式)来获取在行位置找到的确切值时,只有列表中的第一个条目会从索引列表中返回一个精确值。我想要一个在原始数组公式给出的行位置找到的确切值的列表
  • 如果您的工作表很敏感,请提供您想要达到的目标的示例模型 - docs.google.com/spreadsheets/d/…
  • 您是否尝试过使用大括号为您的范围进行 vlookup?当人们认为他们需要数组公式中的 INDEX() 时,这通常是他们所需要的。

标签: google-sheets indexing match array-formulas


【解决方案1】:

我会完全忘记使用 INDEX,而只关注 ARRAYFORMULA + FILTER + MATCH 策略:

=FILTER(ID_list,ARRAYFORMULA(ISNUMBER(MATCH(ID_list,full_list,0)))=TRUE)

如果您的 ID_list 值不存在于 full_list 中,则公式将引发错误。如果你想让它只报告一个空白,那么在你的公式中添加一个 IFERROR:

=IFERROR(FILTER(ID_list,ARRAYFORMULA(ISNUMBER(MATCH(ID_list,full_list,0)))=TRUE),"")

希望它对你有用!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-17
    • 1970-01-01
    • 1970-01-01
    • 2020-12-10
    • 2021-11-09
    • 2012-07-06
    • 2021-08-15
    相关资源
    最近更新 更多