我的电子表格的值如下:
1:29.460
我需要将其转换为
89.460
我有很多这些游戏补偿。我可以在Excel中执行此操作,也可以使用javascript。
对配方的任何建议都表示赞赏!
答案 0 :(得分:7)
这是一个JavaScript解决方案:
function convert(input) {
var parts = input.split(':'),
minutes = +parts[0],
seconds = +parts[1];
return (minutes * 60 + seconds).toFixed(3);
}
convert('1:29.460'); // '89.460'
答案 1 :(得分:3)
您可以使用以下代码:
function toSeconds(str) {
var pieces = str.split(":");
var result = Number(pieces[0]) * 60 + Number(pieces[1]);
return(result.toFixed(3));
}
toSeconds("1:29.460"); // returns 89.460
您可以在此处查看:http://jsfiddle.net/jfriend00/RrZ4W/
答案 2 :(得分:1)
为了全面了解,这里是VBA(UDF)解决方案:
Public Function ConvertToSecond(r As Range)
Dim arr As Variant, lMinutes As Long, lSeconds As Double
Debug.Print (r.Value)
arr = Split(r.Value, ":")
lMinutes = arr(0)
lSeconds = CDbl(Replace(arr(1), ".", ","))
ConvertToSecond = Format(lMinutes * 60 + lSeconds, "#0.0##")
End Function
答案 3 :(得分:0)
您的单元格格式不正确,excel将您的信息存储为hh:mm。
您应该将小时列添加到您的单元格中,如下所示:0:1:29.460
并确保将其设置为时间格式。
然后在另一列中确保将单元格格式设置为数字并添加以下公式(假设您的时间存储在单元格A1中):
=A1*24*60*60
答案 4 :(得分:0)
在VBA模块中编写以下功能
Public Function FormatMinutes(ByVal stime) As String
Dim hour: hour = Mid(stime, 1, InStr(1, stime, ":") - 1)
Dim minute: minute = CInt(Mid(stime, InStr(1, stime, ":") + 1, InStr(1, stime, ".") - InStr(1, stime, ":") - 1))
FormatMinutes = (hour * 60 + minute) & Mid(stime, InStr(1, stime, "."), Len(stime))
End Function
要使用它,只需将=FormatMinute(A1)
放在公式中。