EXCEL中“X分X秒”转换成以秒为单位的数字--LEFT, MID和FIND函数的实际应用

昨天在联通的网站上查询了一下沃家庭套餐的使用情况。

联通的报表做得不错,有详细的通话记录。不过每一次通话的记录都是“10分24秒”这样的记录,我怎么才能知道到现在为止一共使用了多长时间的通话时长呢?沃家庭的套餐是一个月有300分钟的免费本地和长途通话时长。我想要搞清楚使用了多少时间,还剩下多少时长。

把网页上的数据粘贴到空白的excel文件中,如下图。可以看到D这一栏,也就是“通话时长”这一列的数据是不方便做统计的,求和是求不出来的。肿么办?用字符相关的公式做一下转换了:

G这列是我加上的。可以看到G2这个单元格中的公式是:

=IF( IFERROR( FIND( "分", $D2 ), 0) > 0, LEFT( $D2, FIND( "分", $D2 ) - 1 ) * 60 + IFERROR( MID( $D2, FIND( "分",$D2 ) + 1, FIND( "秒", $D2 ) - FIND( "分", $D2 ) - 1 ), 0 ), LEFT( $D2, FIND( "秒", $D2 ) - 1 ) * 1 )
其实是这个公式是分了两种情况来处理:

第一种是针对“42秒”这样的情况,只有秒数,没有分钟的相关信息,这种情况的处理相对简单: 

LEFT( $D2, FIND( "秒", $D2 ) - 1 ) * 1 )

只需要把D2单元格中“秒”字前面的部分截取出来乘以1就可以了。

第二种情况是“10分54秒”这样的格式,这就需要把分钟数和秒数分别截取出来。

LEFT( $D2, FIND( "分", $D2 ) - 1 ) * 60 + IFERROR( MID( $D2, FIND( "分",$D2 ) + 1, FIND( "秒", $D2 ) - FIND( "分", $D2 ) - 1 ), 0 )

这是把“分”字以前的部分截取出来乘以60,再把“分”字与“秒”字之间的字符截取出来乘以1,两者相加。

这里需要注意的是有可能源字符串中根本没有“秒”这个字符,如“10分”这样的话就要用IFERROR函数来处理,如果没有“秒”字就计为0。
同样的道理,再用一层IFERROR来区分有“分”字和没有“分”字的情况,这样就得到了图中红色部分的公式。

EXCEL Formula for Duration Calculaiton in Seconds

用了上面的公式,“秒数”这一栏的数据就变成以秒为单位的数字了。

这样就可以对它们求和来得到一共用掉了多少分种的通话时长,还剩下多少免费通话时间了。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值