Google Sheets中正确拆分ISO 8601格式时间戳为日期和时间的方法
解决Google Sheets中ISO 8601时间戳拆分问题
嘿,我碰到过好多次这个情况!你的TEXT()公式没生效,大概率是因为那个ISO时间戳(比如2002-01-01T05:00:31.217Z)在Google Sheets里是文本格式,不是它能识别的日期时间数值;或者你放公式的单元格被错误设置成了文本格式,导致公式无法正常计算。下面是具体的解决步骤:
一、先把文本格式的时间戳转成可识别的日期时间值
Google Sheets的日期时间本质是带小数的数值,文本格式的时间戳它不认,所以得先转格式:
在空白单元格(比如B1,假设原时间戳在A1)输入下面任意一个公式:
方法1:提取前19位再转数值
=VALUE(LEFT(A1, 19))(解释:
LEFT(A1,19)截取掉末尾的毫秒和Z,VALUE()把这个日期时间字符串转成Sheets能识别的数值)方法2:更简洁的快捷转换
=--SUBSTITUTE(A1, "Z", "")(解释:
SUBSTITUTE去掉末尾的Z,--是Sheets里把文本转成数值的小技巧,比VALUE()更简洁)
二、拆分日期和时间
有了转换后的日期时间数值,就可以轻松拆分了:
提取日期(yyyy-mm-dd格式)
在C1输入公式:
=TEXT(B1, "yyyy-mm-dd")
或者用TO_DATE()函数,之后手动设置单元格格式为yyyy-mm-dd:
=TO_DATE(B1)
提取时间(hh:mm:ss格式)
在D1输入公式:
=TEXT(B1, "hh:mm:ss")
同样也可以用TO_TIME()函数后设置格式:
=TO_TIME(B1)
三、一步到位的懒人公式(不用中间转换单元格)
如果不想多占一个单元格放转换后的数值,可以直接把转换和格式合并成一步:
提取日期:
=TEXT(--SUBSTITUTE(A1, "Z", ""), "yyyy-mm-dd")提取时间:
=TEXT(--SUBSTITUTE(A1, "Z", ""), "hh:mm:ss")
四、排查单元格格式问题
如果上面的公式还是没生效,检查一下你放公式的单元格:
选中单元格,点击顶部菜单栏的格式 > 数字 > 自动,把单元格格式从“文本”改回“自动”,公式就会正常计算显示结果了。
内容的提问来源于stack exchange,提问作者Baobab




