You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

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)截取掉末尾的毫秒和ZVALUE()把这个日期时间字符串转成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

火山引擎 最新活动