如何解决谷歌表格中yyyy/mm格式日期列排序异常的问题
问题原因
你遇到的排序异常是因为用来分组排序的C列mm/yyyy格式数据为文本类型,表格排序功能和QUERY函数默认会按字符串字典序排列,而不是按时间逻辑排序,因此会出现月份顺序错乱的问题。
解决方案
方案1:修改C列为日期类型(推荐)
不要直接把年月转成文本,改为提取当月第一天的日期值,再设置单元格格式为mm/yyyy即可:
- C列提取公式改为
=EOMONTH(A2,-1)+1,公式会自动返回对应日期所在月份的第一天,本质是日期格式,支持正常时间排序 - 选中C列,点击菜单栏「格式」→「数字」→「自定义日期和时间」,设置为
mm/yyyy格式展示 - 原有QUERY公式无需修改,即可正常按时间顺序排序:
=QUERY(B2:C,"select C, avg(B) group by C Order By C ASC")
方案2:不修改C列,直接调整QUERY排序逻辑
如果你不想改动现有C列的提取规则,可以在QUERY中把文本格式的年月临时转为日期再排序:
=QUERY(B2:C,"select C, avg(B) group by C Order By DATEVALUE('01/'&C) ASC")
注:如果你的C列是
yyyy/mm格式,将排序逻辑改为Order By DATEVALUE(C&'/01') ASC即可。
公式通过拼接前缀把文本格式的年月转为可识别的日期格式,按转换后的日期排序即可得到正确的时间顺序。
内容的提问来源于stack exchange,提问作者Chubaka
相关产品推荐
相关产品推荐

