You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel将mm/dd/yyyy日期转dd/mm/yyyy时单数字月日报#VALUE错误求解

报错原因

原公式报错的核心问题是截取“日”字段时硬编码了2位长度,完全没考虑月、日为个位数的短日期场景:
以9/1/2023为例,第一个/在第2位,从斜杠后一位(第3位)开始固定取2位,会把第二个/也截进来,拿到1/这种带非数字符号的文本,VALUE函数无法转成数值,自然返回#VALUE!错误。


解决方法

全版本兼容公式(所有Excel版本都能用)

不要硬编码截取长度,通过定位第二个斜杠的位置确定日字段的实际长度,不管月、日是1位还是2位都能正常识别:

=DATE(
    RIGHT(F47433,4),
    LEFT(F47433,FIND("/",F47433)-1),
    MID(F47433,FIND("/",F47433)+1,FIND("/",F47433,FIND("/",F47433)+1)-FIND("/",F47433)-1)
)

如果你需要直接输出固定带前导零的dd/mm/yyyy格式文本(比如9月显示09、1号显示01),直接在外层套TEXT函数指定格式就行:

=TEXT(
    DATE(
        RIGHT(F47433,4),
        LEFT(F47433,FIND("/",F47433)-1),
        MID(F47433,FIND("/",F47433)+1,FIND("/",F47433,FIND("/",F47433)+1)-FIND("/",F47433)-1)
    ),
    "dd/mm/yyyy"
)

这个公式对所有合法的mm/dd/yyyy格式文本都生效,包括12/31/2023、9/1/2023、10/5/2023、3/12/2023这类混合长度的日期,不会再报错。

高版本Excel简化写法(365/2021及以上版本支持)

如果你的Excel支持TEXTSPLIT函数,可以直接按斜杠拆分字符串取对应字段,逻辑更简单不容易写错:

=LET(
    split_arr,TEXTSPLIT(F47433,"/"),
    DATE(INDEX(split_arr,3),INDEX(split_arr,1),INDEX(split_arr,2))
)

要固定输出dd/mm/yyyy文本格式的话,同样套TEXT即可:

=LET(
    split_arr,TEXTSPLIT(F47433,"/"),
    TEXT(DATE(INDEX(split_arr,3),INDEX(split_arr,1),INDEX(split_arr,2)),"dd/mm/yyyy")
)

用你举的9/1/2023测试,转换后可以正确得到2023年9月1日的日期值,套格式后直接返回01/09/2023,完全符合需求。


内容的提问来源于stack exchange,提问作者PythonBeginner

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 12:12:10