You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Sheets统计唯一日期及日期排序异常问题求助

解决Google Sheets日期文本化后排序错误的问题

核心问题是你用TEXT函数将日期转为字符串后,Query会按文本字符串的字母顺序排序,而非日期的时间顺序,所以出现了May-Mar-Apr这类不符合逻辑的排序结果。以下是几种直接有效的解决方法:

方法一:用Query内置日期函数直接处理(最简洁)

不需要转文本,直接用Query的DATE()函数提取日期部分,保留日期格式进行分组和排序:

=QUERY(
  'Current Data'!D2:D,
  "SELECT COUNT(D), DATE(D) 
   WHERE D IS NOT NULL AND D > DATE'2020-08-01' 
   GROUP BY DATE(D) 
   ORDER BY DATE(D) DESC 
   LABEL COUNT(D) '数据量', DATE(D) '日期'",
  1
)

之后只需将结果的日期列设置为YYYY-mmm-dd的显示格式即可(右键列 → 格式 → 数字 → 自定义日期和时间)。

方法二:提取日期数值进行分组

利用Google Sheets中日期本质是数值的特性,用INT()提取纯日期的数值部分,以此作为分组和排序的依据:

=QUERY(
  ARRAYFORMULA({INT('Current Data'!D2:D), 'Current Data'!D2:D}),
  "SELECT COUNT(Col2), Col1 
   WHERE Col1 IS NOT NULL AND Col1 > DATE'2020-08-01' 
   GROUP BY Col1 
   ORDER BY Col1 DESC 
   LABEL COUNT(Col2) '数据量', Col1 '日期'",
  1
)

同样,设置日期列的显示格式为YYYY-mmm-dd即可。

方法三:将文本日期转回日期格式(兼容原公式)

如果想保留原思路,可在Query结果中将文本日期转回日期格式,再基于日期排序:

=ARRAYFORMULA(
  {
    QUERY(
      ARRAYFORMULA(TEXT('Current Data'!D2:D, "YYYY-mmm-dd")),
      "Select Count(Col1) 
       where Col1 is not null and Col1> '2020-08-01' 
       group by Col1 
       order by Col1 Desc"
    ),
    DATEVALUE(QUERY(
      ARRAYFORMULA(TEXT('Current Data'!D2:D, "YYYY-mmm-dd")),
      "Select Col1 
       where Col1 is not null and Col1> '2020-08-01' 
       group by Col1 
       order by Col1 Desc"
    ))
  }
)

生成结果后,将第二列设置为日期格式,即可按正确的时间顺序排序。

内容的提问来源于stack exchange,提问作者Brent Eldridge

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 09:15:37