将一系列单元格作为变量值传递给单个查询?

问题描述 投票:0回答:2

我有两张纸,sheet1和sheet2。 sheet2的E列包含数量,K列包含文本字符串(即键)。 sheet2中的多行包含相同的文本字符串,但数量不同。

在sheet1列B上,我有一个文本字符串列表。对于每个文本字符串,我要查询sheet2并汇总其E列中的所有数量,其中K列中的值与文本字符串匹配。

当前,我需要x个查询,其中x是工作表1的B列中文本字符串的数量。

sheet1中的每个当前查询如下:

使用sheet1的B1中的文本字符串在sheet1单元格A1中进行查询

 =SUM(
  QUERY(
    'sheet2'!$A$2:INDIRECT(CONCATENATE("'sheet2'!O",'sheet2'!P1)), "select  E where K="""&B1&""""
  ))

使用图纸1的B2中的文本字符串在A2中进行查询

 =SUM(
  QUERY(
    'sheet2'!$A$2:INDIRECT(CONCATENATE("'sheet2'!O",'sheet2'!P1)), "select  E where K="""&B2&""""
  ))

依此类推...

sheet2的单元格P1包含sheet2中非零行的数量

这很好,但是问题是sheet2包含200,000行。我大约有100个文本字符串要搜索,因此我目前正在使用100个查询,每个查询查找200K行x 15列= 3百万个单元格

可以理解,工作表更新需要很长时间,因为在更新sheet2时所有这些查询都会重新运行。

是否有可能将所有这些查询合并为一个?换句话说,告诉公式“我希望您使用范围B1:B100中的每个单元格作为查询中K = x的变量x来执行求和查询,并将结果分别放在单元格A1:A100中”? >

我有两张纸,sheet1和sheet2。 sheet2的E列包含数量,K列包含文本字符串(即键)。 sheet2中的多行包含相同的文本字符串,但具有不同的...

arrays google-sheets sum google-sheets-formula google-sheets-query
2个回答
0
投票

在某些情况下,将其放入数组可能会提高性能:


0
投票

我希望这是您的单个查询,必须将B8更改为sheet1的最后一行

© www.soinside.com 2019 - 2024. All rights reserved.