Excel中LEN、FIND函数处理日期时间格式异常问题求助
解决Excel中日期时间函数差异及格式问题
1. LEN、FIND函数结果差异的原因及解决方法
Excel中的日期时间本质是数值(整数部分对应日期,小数部分对应时间),而非纯文本字符串。直接对这类单元格使用LEN()或FIND(),函数会将数值转换为默认文本格式计算,这就和Google Sheets中按文本处理的结果产生差异:
LEN(C2)返回15:是因为Excel把日期时间数值转成了类似45216.45833的文本,字符长度为15。FIND(" ", C2)报错#VALUE:数值转换后的文本里没有空格,自然无法匹配。
要在Excel中用文本类函数处理日期时间,需先用TEXT()函数将其转换为指定格式的文本:
- 转换为讲师使用的格式:
=TEXT(C2, "yyyy:mm:dd hh:mm:ss") - 计算文本长度:
=LEN(TEXT(C2, "yyyy:mm:dd hh:mm:ss")),返回结果为19 - 查找空格位置:
=FIND(" ", TEXT(C2, "yyyy:mm:dd hh:mm:ss")),返回结果为11
2. 单元格隐藏AM/PM的解决方法
你的单元格实际为12小时制时间(带AM/PM)但不显示,是因为单元格格式设置未包含后缀显示规则:
- 选中目标单元格,右键选择设置单元格格式
- 在「数字」选项卡切换到「自定义」,查看类型框中的格式:
- 若格式为
yyyy:mm:dd hh:mm:ss,这是12小时制格式,默认会带AM/PM但未在格式中声明,所以不显示
- 若格式为
- 按需修改格式:
- 要显示AM/PM:改为
yyyy:mm:dd hh:mm:ss AM/PM - 切换为24小时制:将
hh替换为HH,格式为yyyy:mm:dd HH:mm:ss
- 要显示AM/PM:改为
3. 设置同时显示日期和时间的格式
Excel完全支持同时显示日期和时间,操作步骤:
- 选中目标单元格,右键选择设置单元格格式
- 切换到「自定义」选项卡,在类型框中输入对应格式:
- 24小时制:
yyyy:mm:dd HH:mm:ss - 12小时制带AM/PM:
yyyy:mm:dd hh:mm:ss AM/PM
- 24小时制:
- 点击「确定」,单元格即可同时显示日期和时间
补充:手动删除AM后仍报错的原因
你手动删除AM无效,是因为Excel的日期时间以数值形式存储,单元格中的AM/PM仅为显示格式,并未改变单元格的数值本质。因此FIND()依然无法找到空格,必须通过TEXT()函数转换为文本后再处理。
内容的提问来源于stack exchange,提问作者Kimberley Pylatuk
相关产品推荐
相关产品推荐

