使用Google Sheets的REGEXEXTRACT函数提取指定格式日期
提取两种日期格式的Google表格公式解决方案
核心提取公式
要直接提取单元格中YYYY-MM-DD HH:MM:SS或DD/MM/YYYY HH:MM:SS格式的完整日期时间,使用以下正则提取公式:
=REGEXEXTRACT(A2, "(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}|\d{2}/\d{2}/\d{4} \d{2}:\d{2}:\d{2})")
正则逻辑说明:
\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}:精准匹配年-月-日 时:分:秒格式|:逻辑或,允许匹配两种格式中的任意一种\d{2}/\d{2}/\d{4} \d{2}:\d{2}:\d{2}:精准匹配日/月/年 时:分:秒格式- 外层括号用于捕获匹配到的完整内容,确保返回正确结果
转换为可计算的日期值(可选)
如果需要将提取的文本日期转换为Google表格可识别的日期时间值(支持排序、计算等操作),使用以下公式:
=DATEVALUE(REGREPLACE(REGEXEXTRACT(A2, "(\d{4}-\d{2}-\d{2}|\d{2}/\d{2}/\d{4})"), "(\d{2})/(\d{2})/(\d{4})", "$3-$2-$1")) + TIMEVALUE(RIGHT(REGEXEXTRACT(A2, "\d{2}:\d{2}:\d{2}"),8))
执行逻辑:
- 提取日期部分并将
DD/MM/YYYY统一转换为YYYY-MM-DD格式 - 用
DATEVALUE转换为日期数值,加上TIMEVALUE提取的时间数值,生成完整日期时间值 - 之后可通过单元格格式设置,将数值显示为你需要的日期样式
原公式问题说明
你之前使用的=REGEXEXTRACT(A2,":?(^[0-9]+)/")仅能匹配字符串开头的数字加斜杠的片段,只能提取DD/MM格式中的日部分,完全未覆盖两种完整日期时间格式的匹配逻辑,因此无法得到预期结果。
内容的提问来源于stack exchange,提问作者Code Guy
相关产品推荐
相关产品推荐

