如何通过字符串操作将Excel日期列转换为ISO日期(DD-MM-YYYY)
错误原因分析
你的公式返回#VALUE!的核心问题是RIGHT(I2,4)的使用错误:
- 输入单元格I2是
dd-mmm格式(如"07-Mar"),总长度仅为5个字符,RIGHT(I2,4)提取的是7-Mar而非年份,这直接导致DATE函数的第一个参数(年份)不是有效数字,触发错误。 - 另外,你的输入文本本身不包含年份信息,原思路中错误假设I2有4位年份,这也是逻辑漏洞。
正确公式
根据你的预期结果(07-03-2023),分两种场景提供公式:
固定年份(如2023)
=TEXT(DATE(2023,MONTH(DATEVALUE(I2&" 1")),LEFT(I2,2)),"dd-mm-yyyy")
自动使用当前年份
如果需要自动匹配系统当前年份,可替换为:
=TEXT(DATE(YEAR(TODAY()),MONTH(DATEVALUE(I2&" 1")),LEFT(I2,2)),"dd-mm-yyyy")
公式逻辑说明
LEFT(I2,2):正确提取日期部分(如"07");DATEVALUE(I2&" 1"):将"dd-mmm"转为带默认年份的日期值,再用MONTH提取月份数字;- DATE函数组合指定年份、提取的月份和日期;
- TEXT函数将最终日期格式化为
dd-mm-yyyy。
内容的提问来源于stack exchange,提问作者Bobby
相关产品推荐
相关产品推荐

