【问题标题】:Google Sheets Query where column matches data on another sheets column rangeGoogle表格查询其中列与另一个表格列范围内的数据匹配
【发布时间】:2021-05-05 20:09:00
【问题描述】:

我正在尝试仅查询与 Google 表格中的预定义列表匹配的结果。

这个公式有效...但是如果我的 WHERE 列表包含数千个条目怎么办?有没有更好的办法?

=QUERY(DATA!A2:B,"SELECT B WHERE A = 'Data 1' OR A = 'Data 6' OR A = 'Data 8'")

Sheet #1 - 包含我要查询的数据。

|   A    |      B      |
| Data 1 | Something 1 |
| Data 2 | Something 2 |
| Data 3 | Something 3 |
| Data 4 | Something 4 |
| Data 5 | Something 5 |

表 #2 - 包含一个预定义列表(A 列)和一个查询公式(B 列)。

|   A   |     B      |
| Data1 | Something1 |
| Data6 | Something6 |
| Data8 | Something8 |

这是我尝试过的公式:

=QUERY(DATA!A2:B,"SELECT B WHERE A = '"&A2:A&"'")

这是我的 Google 表格:Click Here

【问题讨论】:

    标签: google-sheets google-sheets-formula


    【解决方案1】:

    在单元格Formula!C2中试试这个:

    =arrayformula( iferror( vlookup(A2:A, DATA!A2:B, columns(DATA!A2:B), false) ) )

    【讨论】:

    • 这是一个很好的解决方案,并且可以完美运行。谢谢你。有没有办法使用查询来实现这些结果?
    • 是的,但是会很复杂。当另一种查找解决方案更简单时,为什么还要使用query()
    • 我同意,简单就是最好的。查询的唯一原因是因为它比 vlookup “更快”。我正在使用的真实数据集大约是 40,000 行 x 6 列。我还想详细了解查询功能及其限制。
    • 这个公式将给出相同的结果只要A列中的键是唯一的并且按字母顺序排列:=query(DATA!A2:B, "select B where A matches '" & "^" & textjoin("$|^", true, A2:A) & "$' ", 0)
    • 你太棒了!这完美!谢谢!
    猜你喜欢
    • 2019-11-30
    • 1970-01-01
    • 2011-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多