如何用Excel公式将DD/MM/YYYY转为DD/MM/YY(需为日期格式)
解决Excel中DD/MM/YYYY转DD/MM/YY(非文本格式)的问题
看起来你走进了一个常见的误区:把「日期显示格式」和「日期底层数值」搞混了。其实不需要手动拼接年份减2000的字符串,Excel本身就能轻松搞定,还能保证结果是真实的日期值(不是文本)。
核心原理
Excel里的日期本质是序列号(比如2019-11-15对应43760),「DD/MM/YY」只是它的显示格式,底层年份还是完整的2019。你要的「15/11/19」只是显示效果,不需要修改底层的日期数值,只要转成真实日期后调整显示格式就行。
具体步骤
1. 把文本型日期转为真实日期值
你的A2是文本"15/11/2019",先把它转成可计算的日期值:
- 如果只有文本型日期,直接用:
=DATEVALUE(A2) - 如果A列混合了日期型(本身就是数值)和文本型日期,用更通用的公式:
这个公式会自动判断:如果是日期型(数值)就直接用,是文本就转成日期值,比你之前用=IF(ISNUMBER(A2), A2, DATEVALUE(A2))CELL("type")的写法更可靠。
2. 设置显示格式为DD/MM/YY
得到真实日期值后,调整显示格式:
- 选中公式结果的单元格,右键 → 「设置单元格格式」
- 切换到「数字」选项卡,选择「自定义」
- 在「类型」输入框里填:
dd/mm/yy(大小写均可,效果一致) - 点击确定,单元格就会显示为
15/11/19,但底层还是完整的2019年日期值,支持排序、计算等日期操作。
为什么你的原公式不行?
你之前拼接YEAR(...) - 2000得到19,再用VALUE转字符串,Excel的VALUE函数会自动补全两位数年份(默认规则:00-29补20xx,30-99补19xx),所以VALUE("15/11/19")会被识别为2019年的日期,这和直接转成完整日期后改格式的底层数值完全一致——完全没必要多此一举。
额外报错处理
如果遇到DATEVALUE报错,说明文本日期格式不被Excel识别,可以用手动拆分的方式转日期:
=IF(ISNUMBER(A2), A2, DATE(RIGHT(A2,4), MID(A2,4,2), LEFT(A2,2)))
内容的提问来源于stack exchange,提问作者litmus




