我有mm.ss.00
形式的大量经过时间记录。例如,如果已用时间为1min 44.72sec
,则数据将变为1.44.72
。我想将这些数据转换为纯秒数据。让我举几个例子:
|mm.ss.00 |seconds |
|:--------------:|:-------------:|
|1.44.72 |104.72
|2.5.32 |125.32
|0.59.12 |59.12
我可以确保时间记录永远不会超过59分59.99秒,因此您可以轻松地假设1或2位数,然后第一个点(.
)必须是分钟。
答案 0 :(得分:1)
选择要转换的单元格并运行此短宏:
Sub Fixer()
Dim r As Range, N As Long
For Each r In Selection
ary = Split(r.Text, ".")
If UBound(ary) = 2 Then
r.Clear
r.Value = CLng(ary(1))
End If
Next r
End Sub
<强> 编辑#1: 强>
这是 VBA 宏。宏很容易安装和使用:
如果保存工作簿,宏将随之保存。 如果您在2003年之后使用的是Excel版本,则必须保存 该文件为.xlsm而不是.xlsx
删除宏:
要使用Excel中的宏:
要了解有关宏的更多信息,请参阅:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
和
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
必须启用宏才能使其生效!
修改#2 强>
根据您更新的帖子,这是更新的宏:
Sub Fixer()
Dim r As Range
For Each r In Selection
ary = Split(r.Text, ".")
If UBound(ary) = 2 Then
r.Clear
r.Value = 60 * CDbl(ary(0)) + CDbl((ary(1) & "." & ary(2)))
End If
Next r
End Sub
答案 1 :(得分:1)
请尝试:
=RIGHT(A1,LEN(A1)-FIND(".",A1))+60*LEFT(A1,FIND(".",A1))
这会将1.44.72
之类的字符串视为字符串,并对其进行操作以剥离数字字符,直至并包括第一个句点(美国时段)。如果要忽略分钟,则可能不需要包含和在加号后面的部分,因为它在第一个完全停止(分钟)之前转换为秒数并将其添加到第一个部分的秒和百分之几秒。公式。
添加过程将字符串操作的文本结果转换为数字格式,但这可以通过其他方式实现秒和百分之一秒。
答案 2 :(得分:-1)
这应该有效:
=TIMEVALUE(SUBSTITUTE(SUBSTITUTE(A1,"min ",":"),"sec",""))*24*60*60
1)使用替换删除&#34; min&#34;和&#34;秒&#34;文字,它是无用的&#34;并且只是妨碍了。另外,添加一个:到第一个空白,以帮助Excel了解格式。 2)转换为内部Excel日期/时间代码/值。 3)多次我的24(一天24小时)* 60(每小时60分钟)* 60(每分钟60秒)以获得所涉及的秒数。
**对不起,我想我误读了输入格式..
以上假设数据进入的时间类似于&#34; 1分44.72秒&#34; .. 如果数据只是&#34; 1.44.72&#34; ..改用这个:
=TIMEVALUE(SUBSTITUTE(B1,".",":",1))*24*60*60
类似的想法,将第一个句点转换为冒号,然后转换为内部Excel时间,然后转换为秒。 ;)