删除 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+)")))