Excel/Google Sheets中无需额外列生成唯一年月组合方法问询
无需辅助列提取唯一年月组合的方法
当然可以不用创建辅助列!直接把日期转换和去重的逻辑嵌套到同一个公式里就行,下面分Google Sheets和Excel两种常用场景说明:
Google Sheets 实现方式
因为Google Sheets的UNIQUE默认不支持整列的批量运算,需要配合ARRAYFORMULA来处理A列所有日期:
=UNIQUE(ARRAYFORMULA(DATE(YEAR(A:A), MONTH(A:A), 1)))
- 细节解释:
DATE(YEAR(A:A), MONTH(A:A), 1)会把A列每个日期转换成对应月份的第一天(日参数设为1是因为DATE函数必须包含日值,完全不影响年月的唯一性),ARRAYFORMULA负责把这个转换逻辑批量应用到整列,最后用UNIQUE提取唯一的年月组合。
如果希望结果直接显示为YYYY-MM的文本格式(而非日期格式),可以改用TEXT函数:
=UNIQUE(ARRAYFORMULA(TEXT(A:A, "YYYY-MM")))
Excel 365/2021 实现方式
Excel的动态数组函数支持自动扩展,不需要额外的ARRAYFORMULA,直接写:
=UNIQUE(DATE(YEAR(A:A), MONTH(A:A), 1))
同样,要显示为年月文本格式的话:
=UNIQUE(TEXT(A:A, "YYYY-MM"))
注:如果你的Excel版本不支持动态数组(比如2019及更早版本),UNIQUE函数本身可能无法使用,但既然你提到了UNIQUE,应该是在用支持动态数组的新版本~
内容的提问来源于stack exchange,提问作者Petr Kramolis
相关产品推荐
相关产品推荐

