Excel TEXT格式化TODAY()为yyyy-mm-dd时年份显示异常问题
问题原因
该格式代码失效问题由本地化版本办公软件的TEXT函数占位符规则差异导致:
- 公式使用
;作为参数分隔符,说明当前运行环境为欧洲区域设置的Excel/LibreOffice Calc等表格软件,这类非英文本地化版本的TEXT函数,年格式占位符和英文版本不通用。 YYYY是英文版本的四位年占位符,当前软件版本无法识别该占位符,因此直接原样输出字符串;月、日的MM/DD占位符在当前版本中可正常识别,因此能输出正确的月份、日期值。- 直接拼接
TODAY()得到数字44730是表格日期的本质存储值:表格内部以序列数存储日期,CONCAT函数拼接时会直接读取原始序列值,不会自动套用日期格式。
解决方案
方案1:替换为本地版本适配的年占位符
多数欧洲语言(德语、荷兰语等)版本的表格软件,四位年的占位符为JJJJ(两位年为JJ),替换后公式如下:
=CONCAT("2021-10-01"; " > ";TEXT(TODAY();"JJJJ-MM-DD"))
如果上述公式仍无法正常输出年份,可尝试aaaa作为四位年占位符(法语、意大利语、西班牙语等拉丁语系版本常用)测试。
方案2:手动拼接日期(无本地化兼容问题)
如果不想适配不同版本的占位符规则,可直接提取日期的年、月、日数值拼接,完全不受软件语言、区域设置影响,同时能保证月、日自动补前导零,符合yyyy-mm-dd格式要求:
=CONCAT("2021-10-01"; " > ";YEAR(TODAY());"-";TEXT(MONTH(TODAY());"00");"-";TEXT(DAY(TODAY());"00"))
内容的提问来源于stack exchange,提问作者kogia
相关产品推荐
相关产品推荐

