索引匹配与求和函数
Index-Match with Sum-Function
我有两个选项卡 Product-Overview
和 Prices
。
在 Prices
选项卡上,我想添加我的数据并在财务选项卡上获得概览。
我尝试使用 index-match
,但是如果我的 Prices
选项卡中同一个月有多个值,我不确定如何总结?
我想得到以下结果:
在下面找到我的最小可行示例 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 "®EXEXTRACT(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®EXEXTRACT(O1:1; "/(\d+)")))
我有两个选项卡 Product-Overview
和 Prices
。
在 Prices
选项卡上,我想添加我的数据并在财务选项卡上获得概览。
我尝试使用 index-match
,但是如果我的 Prices
选项卡中同一个月有多个值,我不确定如何总结?
我想得到以下结果:
在下面找到我的最小可行示例 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 "®EXEXTRACT(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®EXEXTRACT(O1:1; "/(\d+)")))