用日期数据透视表和日期顺序查询

时间:2019-10-15 11:51:57

标签: google-sheets pivot google-sheets-formula array-formulas google-sheets-query

我有这个简单的表和查询:

https://docs.google.com/spreadsheets/d/1MwdP08WWmkG13fGmKjB5hpL-D_uqgAu0lsXrO8WcE1M

问题是,我无法按日期对列进行排序。我已经尝试过transpose + sort + transpose,但是它不起作用,因为它将“ 2019-10-1”放在“ 2019-9-1”之前(因为它将日期解释为文本)。有什么办法可以对此进行排序吗?

1 个答案:

答案 0 :(得分: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))})))

0

,如果要删除该金额:

=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 "; " "))

0


  

我可以在哪里添加日期过滤器where A >= date '2019-07-01'。我尝试将其添加到第一块中,但始终收到错误消息:"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 "; " "))

0

相关问题