近日公众号后台有位网友提出了这么个问题
D列的通话时长要折算成分钟数,不足1分钟的按照1分钟计算。听说移动计算手机话费是这样的,通话时长不足1分钟的也按照1分钟计算。
也就是要实现如下所示的转换
这是一个典型的在Excel中做数值修约的问题,涉及到数值的进位函数。
在B2单元格输入如下的公式
=ROUNDUP(SUBSTITUTE(SUBSTITUTE(IF(LEN(A2)<4,”0分”&A2,A2),”分”,”.”),”秒”,””),0)&”分钟”
双击填充柄填充即可实现想要的结果。
接下来,我们来分析下这个问题的解题思路
首先A列的时间都是文本形式的,要变成数值形式才能进行进位。
比如10分30秒,如果变成了10.30,只要用往上进位函数就可以变成11。
但是A列的时间有些连1分钟都不到,比如20秒,要变成0.2才能直接往上进位到1。
所以先用函数
IF(LEN(A2)<4,”0分”&A2,A2)
给A列的时间进行规范化,对于不足1分钟的时间,在它的前面添加0分,比如20秒,就变成0分20秒,如下所示
现在B列的数据都是规范的分秒格式,然后用函数SUBSTITUTE将分和秒替换,把分替换为小数点,把秒替换为空。
就变成了如下所示
最后用ROUNDUP函数将C列的结果向上进位,就得到了最终要的结果。
最后,让我们来回顾下整个问题,通过将文本形式的时间转成对应的数值,然后用向上进位函数向上进位是整个问题的解决思路。
但是要实现这些过程,需要熟练运用Substitute函数、RoundUP函数、以及字符串的补位思想。
要用函数解决一个问题,最难的其实是思路,思路有了只要分步拆解,将每一步都用函数解决,再嵌套起来就容易了。
今天的分享就到此为止。
发表评论