【问题标题】:Translating each result row of a Google Sheets QUERY operation via VLOOKUP通过 VLOOKUP 翻译 Google 表格查询操作的每个结果行
【发布时间】:2026-01-01 03:00:02
【问题描述】:

我在 Google 表格中有 QUERY 的多列结果,我想根据另一个命名范围中的查找表翻译一列中的字符串。我可以通过额外的VLOOKUP 调用间接完成此操作,但我想一次性完成所有操作,无需中间步骤。有关我的格式示例,请参阅 this sheet

我做的初始查询看起来像这样:

=QUERY(votes, "SELECT B, SUM(C) GROUP BY B LABEL B 'Option', SUM(C) 'Votes'")

然后我可以在新列中用类似的内容翻译每一行...

=VLOOKUP(A2, options, 2, 0)

...然后只需选择我需要的列:

={C2:C4,B2:B4}

我怎样才能把这一切结合起来?我想我需要用ARRAYFORMULA 来做这件事,但这似乎不是:

=ARRAYFORMULA(VLOOKUP(options, QUERY(votes, "SELECT B, SUM(C) GROUP BY B LABEL B 'Option', SUM(C) 'Votes'"), 2, FALSE))

【问题讨论】:

    标签: google-sheets google-sheets-formula array-formulas google-sheets-query gs-vlookup


    【解决方案1】:
    =ARRAYFORMULA({VLOOKUP(INDEX(
     QUERY(votes, "select B,sum(C) group by B LABEL sum(C)''"),,1), options, 2, 0), 
     QUERY(votes, "select   sum(C) group by B LABEL sum(C)''")})
    

    【讨论】:

    • 我对源数据的实际查询需要一些额外的过滤,所以这个对我有用。非常感谢!
    【解决方案2】:
    =ARRAYFORMULA(QUERY({IFERROR(VLOOKUP(Votes!B2:B, options, 2, 0)), Votes!C2:C}, 
     "select Col1,sum(Col2) where Col1 is not null group by Col1 label sum(Col2)''", 0))
    

    【讨论】: