我找不到一种简单而整洁的方法来实现您想要的布局,但是您可以使用 Index 根据包含这样的公式的行和列从查询中提取行和列(对于第一列)
=if(int(rows($1:3)/3)<=countunique($A$2:$A$9),choose(mod(rows($1:3),3)+1,index(QUERY($A$2:$F$9,"select A,B,Sum(C),Sum(E) group by A,B Label Sum(C) 'Total Quantity',Sum(E) 'Total Price'") ,int(rows($1:3)/3)*2,1),"","Total"),"")
然后它会确定它是报告中组的第一行、第二行还是第三行,并使用选择功能输入项目名称、空白单元格或单词“Total”。
第二列的工作方式相同
=if(int(rows($1:3)/3)<=countunique($A$2:$A$9),if(mod(rows($1:3),3)<2,index(QUERY($A$2:$F$9,"select A,B,Sum(C),Sum(E) group by A,B Label Sum(C) 'Total Quantity',Sum(E) 'Total Price'") ,int(rows($1:3)/3)*2+mod(rows($1:3),3),2),""),"")
第一个 Mod 函数用于确定它是否应该显示查询中的“b”或“s”,或者一个空白,第二个 Mod 函数用于确定它应该是查询的“b”还是“s”行询问。
第三列也类似
=if(int(rows($1:3)/3)<=countunique($A$2:$A$9),if(mod(rows($1:3),3)<2,index(QUERY($A$2:$F$9,"select A,B,Sum(C),Sum(E) group by A,B Label Sum(C) 'Total Quantity',Sum(E) 'Total Price'") ,int(rows($1:3)/3)*2+mod(rows($1:3),3),3),L11-L12),"")
第一个 Mod 函数用于计算它是否应该显示查询中的数量,或者前两行的差异,第二个 Mod 函数用于计算它应该是查询的“b”行还是“s”行询问。
第四列与第二列几乎相同。
=if(int(rows($1:3)/3)<=countunique($A$2:$A$9),if(mod(rows($1:3),3)<2,index(QUERY($A$2:$F$9,"select A,B,Sum(C),Sum(E) group by A,B Label Sum(C) 'Total Quantity',Sum(E) 'Total Price'") ,int(rows($1:3)/3)*2+mod(rows($1:3),3),4),""),"")
(我不知道应该如何计算实际利润)。