首页 > 解决方案 > 带有 SUMIFS 的 Arrayformula 不下拉

问题描述

我已经尝试解决这个问题一段时间了。我在这里阅读了一些问题,但没有一个能解决我的问题。

我有一张包含一些股票数据的表格,我正在尝试使用 ARRAYFORMULA 计算直到那一刻的平均价格,我想要的是 ColH,但我的 ARRAYFORMULA 不会自动下拉,老实说我不明白它的原因。

打印屏幕

https://docs.google.com/spreadsheets/d/1sRDNCyWK1LItqETYoWSOV9eiEI4mySDetlBcbupwbvk/edit?usp=sharing

我使用的公式是: =ArrayFormula(SUM(FILTER($G$2:G2;$C$2:C2="Buy";$D$2:D2=INDEX($D2:$D;1);$A$2:A2=INDEX($A2:$A;1)))/SUM(FILTER($E$2:E2;$C$2:C2="Buy";$D$2:D2=INDEX($D2:$D;1);$A$2:A2=INDEX($A2:$A;1))))

为什么这不起作用?我也尝试过使用 SUMIFS,但它没有用。

标签: google-sheets

解决方案


尝试:

=ARRAYFORMULA(QUERY(SPLIT(FLATTEN(IF(
 INDIRECT("D2:D"&MAX(IF(C2:C="buy"; ROW(C2:C))))=IF(ROW(
 INDIRECT("C2:C"&MAX(IF(C2:C="buy"; ROW(C2:C)))))>=TRANSPOSE(ROW(
 INDIRECT("C2:C"&MAX(IF(C2:C="buy"; ROW(C2:C)))))); TRANSPOSE(
 INDIRECT("D2:D"&MAX(IF(C2:C="buy"; ROW(C2:C))))); ); ROW(
 INDIRECT("C2:C"&MAX(IF(C2:C="buy"; ROW(C2:C)))))&"×"&
 INDIRECT("G2:G"&MAX(IF(C2:C="buy"; ROW(C2:C))))&"×"&
 INDIRECT("E2:E"&MAX(IF(C2:C="buy"; ROW(C2:C)))); )); "×"); 
 "select sum(Col2)/sum(Col3) 
  where Col2 is not null 
  group by Col1 
  label sum(Col2)/sum(Col3)''"))

在此处输入图像描述


推荐阅读