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

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

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

 

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Excel 转换成拼音首字母,需要用到 Excel 的 CONCATENATE 函数和 VBA 函数。具体步骤如下: 1. 打开 Excel 文档,选需要转换的文文字所在的单元格。 2. 在单元格输入以下公式: =CONCATENATE(IF(ISERROR(FIND(LEFT(B1,1), "ABCDEFGHIJKLMNOPQRSTUVWXYZ")), LEFT(B1,1), ""), IF(ISERROR(FIND(MID(B1,2,1), "ABCDEFGHIJKLMNOPQRSTUVWXYZ")), MID(B1,2,1), ""), IF(ISERROR(FIND(MID(B1,3,1), "ABCDEFGHIJKLMNOPQRSTUVWXYZ")), MID(B1,3,1), ""), IF(ISERROR(FIND(MID(B1,4,1), "ABCDEFGHIJKLMNOPQRSTUVWXYZ")), MID(B1,4,1), "")) 其,B1 表示需要转换的文文字所在的单元格。 3. 按下 Enter 键,完成公式输入。此时,该单元格文文字已经转换成了拼音首字母。 4. 如果需要批量转换多个文文字,可以将公式拖动到需要转换的单元格范围内,再按下 Ctrl+Enter 键,即可完成批量转换。 5. 如果需要将上述公式导入到 VBA ,可以使用以下 VBA 函数: Function ChineseToPinyin(ByVal str As String) As String Dim i As Integer For i = 1 To Len(str) If AscW(Mid(str, i, 1)) < 19968 Or AscW(Mid(str, i, 1)) > 40869 Then ChineseToPinyin = ChineseToPinyin & Mid(str, i, 1) Else ChineseToPinyin = ChineseToPinyin & Left(Application.WorksheetFunction.VLookup(Mid(str, i, 1), Range("A1:B405"), 2, False), 1) End If Next i End Function 其,Range("A1:B405") 是一个包含文字符和对应拼音首字母的数据表格。在使用该函数时,需要将该数据表格插入到 Excel ,并修改代码的数据表格范围和单元格引用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值