如何在Google Sheets或Presto SQL中排序年月格式字符串?
按年份和对应月份排序campaign_type数据
用Python实现的方案
1. 定义月份映射关系
先把英文月份缩写对应成数字,方便排序比较:
month_map = { 'jan': 1, 'feb': 2, 'mar': 3, 'apr': 4, 'may': 5, 'jun': 6, 'jul': 7, 'aug': 8, 'sep': 9, 'oct': 10, 'nov': 11, 'dec': 12 }
2. 执行排序
通过自定义排序规则,先按年份排序,再按前3个字符对应的月份排序:
# 原始数据 data = [ 'campaign_type', 'marmay2022', 'janmar2022', 'mayjul2022' ] # 保留表头,对数据行排序 sorted_data = [data[0]] + sorted( data[1:], key=lambda x: (int(x[-4:]), month_map[x[:3].lower()]) ) # 输出排序结果 for item in sorted_data: print(item)
3. 最终排序结果
campaign_type
janmar2022
marmay2022
mayjul2022
用Excel实现的方案
- 添加辅助列1:提取年份,公式为
RIGHT(A2,4),设置单元格格式为数字 - 添加辅助列2:提取前3个字符,公式为
LEFT(A2,3),再用VLOOKUP匹配对应的月份数字(需提前建立月份缩写-数字的对照表格) - 选中所有数据,按辅助列1、辅助列2的顺序升序排序,最后删除辅助列即可
内容的提问来源于stack exchange,提问作者Alice
相关产品推荐
相关产品推荐

