我有两张纸,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中的多行包含相同的文本字符串,但具有不同的...
在某些情况下,将其放入数组可能会提高性能:
我希望这是您的单个查询,必须将B8更改为sheet1的最后一行