查询日期数据透视和日期顺序
Query with date Pivot and date order
我有这个简单的 table 和查询:
https://docs.google.com/spreadsheets/d/1MwdP08WWmkG13fGmKjB5hpL-D_uqgAu0lsXrO8WcE1M
问题是,我无法让列按日期排序。我试过转置+排序+转置,但它不起作用,因为它将“2019-10-1”放在“2019-9-1”之前(因为它将日期解释为文本)。有什么办法可以解决这个问题吗?
你可以做到:
=ARRAYFORMULA(QUERY(QUERY(A:D;
"select B,sum(C),sum(D)
where B is not null
group by B
pivot A");
"select Col1,"&TEXTJOIN(","; 1;
{"Col"&ROW(INDIRECT("A2:A"&COUNTUNIQUE(A2:A)+1))\
"Col"&ROW(INDIRECT("A"&2+COUNTUNIQUE(A2:A)&":A"&COUNTUNIQUE(A2:A)*2+1))})))
如果您想删除该总和:
=ARRAYFORMULA(REGEXREPLACE(TO_TEXT(QUERY(QUERY(A:D;
"select B,sum(C),sum(D)
where B is not null
group by B
pivot A ");
"select Col1,"&TEXTJOIN(","; 1;
{"Col"&ROW(INDIRECT("A2:A"&COUNTUNIQUE(A2:A)+1))\
"Col"&ROW(INDIRECT("A"&2+COUNTUNIQUE(A2:A)&":A"&COUNTUNIQUE(A2:A)*2+1))})));
" sum "; " "))
where can I add a date filter where A >= date '2019-07-01'
. I've tried adding it in the first block, but I keep getting the error: "Error Unable to parse query string for Function QUERY parameter 2: NO_COLUMN: ColXX"
=ARRAYFORMULA(REGEXREPLACE(TO_TEXT(QUERY(QUERY(A:D;
"select B,sum(C),sum(D)
where B is not null
and A >= date '2019-7-1'
group by B
pivot A ");
"select Col1,"&TEXTJOIN(","; 1;
{"Col"&ROW(INDIRECT("A2:A"&COUNTUNIQUEIFS(A2:A; A2:A; ">="&DATE(2019;7;1))+1))\
"Col"&ROW(INDIRECT("A"&2 +COUNTUNIQUEIFS(A2:A; A2:A; ">="&DATE(2019;7;1))&":A"&
COUNTUNIQUEIFS(A2:A; A2:A; ">="&DATE(2019;7;1))*2+1))})));
" sum "; " "))
我有这个简单的 table 和查询:
https://docs.google.com/spreadsheets/d/1MwdP08WWmkG13fGmKjB5hpL-D_uqgAu0lsXrO8WcE1M
问题是,我无法让列按日期排序。我试过转置+排序+转置,但它不起作用,因为它将“2019-10-1”放在“2019-9-1”之前(因为它将日期解释为文本)。有什么办法可以解决这个问题吗?
你可以做到:
=ARRAYFORMULA(QUERY(QUERY(A:D;
"select B,sum(C),sum(D)
where B is not null
group by B
pivot A");
"select Col1,"&TEXTJOIN(","; 1;
{"Col"&ROW(INDIRECT("A2:A"&COUNTUNIQUE(A2:A)+1))\
"Col"&ROW(INDIRECT("A"&2+COUNTUNIQUE(A2:A)&":A"&COUNTUNIQUE(A2:A)*2+1))})))
如果您想删除该总和:
=ARRAYFORMULA(REGEXREPLACE(TO_TEXT(QUERY(QUERY(A:D;
"select B,sum(C),sum(D)
where B is not null
group by B
pivot A ");
"select Col1,"&TEXTJOIN(","; 1;
{"Col"&ROW(INDIRECT("A2:A"&COUNTUNIQUE(A2:A)+1))\
"Col"&ROW(INDIRECT("A"&2+COUNTUNIQUE(A2:A)&":A"&COUNTUNIQUE(A2:A)*2+1))})));
" sum "; " "))
where can I add a date filter
where A >= date '2019-07-01'
. I've tried adding it in the first block, but I keep getting the error:"Error Unable to parse query string for Function QUERY parameter 2: NO_COLUMN: ColXX"
=ARRAYFORMULA(REGEXREPLACE(TO_TEXT(QUERY(QUERY(A:D;
"select B,sum(C),sum(D)
where B is not null
and A >= date '2019-7-1'
group by B
pivot A ");
"select Col1,"&TEXTJOIN(","; 1;
{"Col"&ROW(INDIRECT("A2:A"&COUNTUNIQUEIFS(A2:A; A2:A; ">="&DATE(2019;7;1))+1))\
"Col"&ROW(INDIRECT("A"&2 +COUNTUNIQUEIFS(A2:A; A2:A; ">="&DATE(2019;7;1))&":A"&
COUNTUNIQUEIFS(A2:A; A2:A; ">="&DATE(2019;7;1))*2+1))})));
" sum "; " "))