索引匹配与求和函数

Index-Match with Sum-Function

我有两个选项卡 Product-OverviewPrices

Prices 选项卡上,我想添加我的数据并在财务选项卡上获得概览。

我尝试使用 index-match,但是如果我的 Prices 选项卡中同一个月有多个值,我不确定如何总结?

我想得到以下结果:

在下面找到我的最小可行示例 google sheet:

Google Sheet

有什么建议吗?

你要找的是sumifs公式:

这将解决您的问题,它不是数组公式,但如果您将它拖动到您希望它们移动的单元格,它就会起作用。

=sumifs(
  Prices!$C:$C;
  Prices!$A:$A;$B5;
  Prices!$D:$D;">="&if(isblank(N);date(year(O);month(O)-1;day(O));N);
  Prices!$D:$D;"<="&if(isblank(O);date(year(N);month(N)+1;day(N));O)
)

删除 D 列并在 D2 中使用它:

=ARRAYFORMULA(IF(A2:A="";;TEXT(B2:B; "mm/yy")))

那么你可以这样做:

=QUERY(Prices!A2:D; "select A,sum(C) where A is not null group by A pivot D")

O5 更高级:

=ARRAYFORMULA(IF(O1:1="";;IF(B5:B="";;
 IFNA(VLOOKUP(B5:B; QUERY(Prices!A2:D; 
 "select A,sum(C) where A is not null group by A pivot D"); 
 MATCH(TO_TEXT(O1:T1); QUERY(QUERY(Prices!A2:D; 
 "select sum(C) where A is not null group by A pivot D"); 
 "limit 0"; 1); 0)+1; 0))*1)))

当然B5可以是:

=SORT(UNIQUE(Prices!A2:A))

那么D5可以是:

=ARRAYFORMULA(IF(B5:B="";;"Product "&REGEXEXTRACT(TO_TEXT(B5:B); ".(\d+)")))

平均 N5 可以像这样完成:

=ARRAYFORMULA(QUERY(TRANSPOSE(QUERY(TRANSPOSE(O5:100);
 "select "&TEXTJOIN(","; 1; IF(B5:B="";; 
 "avg(Col"&ROW(O5:O)-ROW(O5)+1&")"))&""));
 "select Col2"))

在 O1 中生成日期,例如:

=ARRAYFORMULA(ARRAY_CONSTRAIN(TRANSPOSE(UNIQUE(TEXT(ROW(INDIRECT(
 DATEVALUE("1/11/2020")&":"&
 DATEVALUE("1/11/2050"))); "mm/yy"))); 1; COLUMNS(O1:1)-1))

以及在 O2 的年数:

=ARRAYFORMULA(IFNA(20&REGEXEXTRACT(O1:1; "/(\d+)")))