首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

PowerQuery数据处理技巧:时分秒文本转换为数字

今天分享一个数据处理的小技巧。

最近被星友问到文本格式的时间如何转换为数字时间的问题,本文就来介绍一种简易的转换方式,如果你恰好碰到这种问题,应该会有帮助。

模拟示例数据如下图:

在这些时间字符串中,有的是完整的时分秒,而有的只有小时或者分钟,对于这样的字符串显然不能直接转换为标准的时间或者数值数据,如果想把这样的文本转换为数字的秒数,应该怎么做呢?

基本思路是将文本的小时、分钟和秒根据单位,替换为相应的计算表达式,然后运行计算即可,下面就来看看PowerQuery的具体转换方式。

导入PowerQuery以后,选中这一列,右键>替换值:

将"小时"替换为"*3600+":

同样的方式,再做两次替换,将"分钟"替换为"*60+"、将"秒"替换为空,就可以将以上的时间字符串转换为这样的数学表达式:

然后利用M函数Expression.Evaluate来计算这个表达式,添加自定义列:

Expression.Evaluate(

   Text.TrimEnd([时间],"+")

)

因为数据中有些时间的秒是不全的,导致上面的替换操作后,有的值最后带有“+”,所以这里用了Text.TrimEnd先将尾部的字符"+"清除掉,然后再计算这个表达式,结果如下:

这样就轻松从时间文本得到了具体的数字,如果想要的是小时数,在这个基础上再除以3600即可。

解决这种需求的方法,当然不止这一种,但应该是最简单、最易于理解的做法,很多数据的处理,不要把它想的太复杂,大部分需求都可以灵活使用PowerQuery中的界面操作来完成。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20220108A01F1Q00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券