从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很容易安装和使用:

  1. ALT-F11调出VBE窗口
  2. ALT-I ALT-M打开一个新的模块
  3. 粘贴东西,closuresVBE窗口

如果您保存该工作簿,该macros将与它一起保存。 如果您在2003年以后使用的是Excel版本,则必须将该文件另存为.xlsm而不是.xlsx

要删除macros:

  1. 如上所示调出VBE窗口
  2. 清除代码
  3. closuresVBE窗口

从Excel使用macros:

  1. ALT-F8
  2. selectmacros
  3. 触摸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时间,然后转换为秒。 ;)