【问题标题】:Using INDEX MATCH to return multiple rows in Google Sheets使用 INDEX MATCH 在 Google 表格中返回多行
【发布时间】:2015-04-21 15:09:29
【问题描述】:

我目前正在尝试使用 INDEX/MATCH 公式根据用户输入的条件将数据表中的值返回到摘要表中

这是我目前的公式:

=INDEX(DATA!A:AF,MATCH(B1&C1&E1,DATA!AA:AA&DATA!AD:AD&DATA!AC:AC,0))

但是它只返回与结果匹配的第一行。如何让它返回与 MATCH 的结果匹配的所有行?

谢谢!

【问题讨论】:

    标签: google-sheets


    【解决方案1】:

    或许可以考虑使用 FILTER():

    =FILTER(DATA!A:AF, B1&C1&E1=DATA!AA:AA&DATA!AD:AD&DATA!AC:AC)
    

    【讨论】:

    • 这(并将结果包装在TRANSPOSE 以将其从一列“切换”为一行)正是我所需要的,谢谢!
    【解决方案2】:

    对于几年后阅读此主题的其他人,您也可以使用查询公式。这是一篇有用的文章,可以更好地帮助学习它: https://www.benlcollins.com/spreadsheets/google-sheets-query-sql/

    在这种情况下,你可以使用:

    =Query(DATA!A:AF,"select * where AA = "&B1&" AND AD = "&C1&" AC = "&E1)`
    

    查询公式使用 SQL 的一个版本来帮助您过滤并返回您需要的确切数据。我不能强调它有多么有用!

    要引用查询公式的第一个字段中标注的数据范围之外的字段,必须使用字符串分隔符和与号。

    【讨论】:

    • QUERY 非常有用,但请注意在插入/删除列或复制/粘贴公式时查询中的引用不会更新的陷阱。您必须每次手动更新公式。实际上,我在寻找可以让我用其他东西替换我的 QUERY 的解决方案时发现了这条评论,而 FILTER 给了我想要的东西。
    【解决方案3】:

    这个公式

    =FILTER(A1:C3,B1:B3="ADD")
    

    在这张桌子上

    Alpha Beta Gamma
    MP foo 10
    PZ ADD 2
    CP to 5

    得到这个结果


    @JPV 用 FILTER 公式解决 INDEX MATCH 的答案非常棒。

    然后与关于 TRANSPOSE 的评论相关,使行和列将被交换,这在我的情况下不是必需的

    【讨论】:

      猜你喜欢
      • 2021-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-07
      • 1970-01-01
      相关资源
      最近更新 更多