从mm.ss.00stringparsing秒
我有很多时间logging在mm.ss.00
的forms。 例如,如果经过时间是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
我可以保证时间logging不会超过59分59.99秒,所以在第一个点( .
)必须是分钟之前,您可以轻松地假定1或2个数字。
请尝试:
=RIGHT(A1,LEN(A1)-FIND(".",A1))+60*LEFT(A1,FIND(".",A1))
这将1.44.72
这样的string视为一个string,并对其进行操作以去除数字字符,直至包括第一1.44.72
(在美国为止)。 如果分钟被忽略,则可能不需要加号和加号后的部分,因为在第一个句号(分钟)转换为秒之前,需要将该号码加上,并将其加到第一部分的秒和百分之几秒公式。
添加过程将string操作的文本结果转换为数字格式,尽pipe可以通过其他方式实现秒和百分之几秒。
select你想转换的单元格并运行这个短的macros:
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:
这是一个VBAmacros。 macros很容易安装和使用:
- ALT-F11调出VBE窗口
- ALT-I ALT-M打开一个新的模块
- 粘贴东西,closuresVBE窗口
如果您保存该工作簿,该macros将与它一起保存。 如果您在2003年以后使用的是Excel版本,则必须将该文件另存为.xlsm而不是.xlsx
要删除macros:
- 如上所示调出VBE窗口
- 清除代码
- closuresVBE窗口
从Excel使用macros:
- ALT-F8
- selectmacros
- 触摸RUN
要了解有关macros的更多信息,请参阅:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
和
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
macros必须启用这个工作!
编辑#2
根据您更新的post,这里是更新的macros:
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
这应该工作:
=TIMEVALUE(SUBSTITUTE(SUBSTITUTE(A1,"min ",":"),"sec",""))*24*60*60
1)使用替代删除“min”和“sec”文本,这是“无用的”,只是阻碍。 另外,添加一个:第一个差距来帮助Excel了解格式。 2)转换为内部Exceldate/时间码/值。 3)多个24(一天24小时)* 60(一小时60分钟)* 60(一分钟60秒)以获得所涉及的秒数。
**对不起,以为我误读了input格式..
上面假设数据进来就像“1min 44.72sec”..如果数据只是“1.44.72”..用这个代替:
=TIMEVALUE(SUBSTITUTE(B1,".",":",1))*24*60*60
类似的想法,将第一个时期转换为冒号,然后转换为内部Excel时间,然后转换为秒。 ;)