将分钟转换为秒

7

我有一个以下数值的电子表格:

1:29.460

我需要将其转换为

89.460

我有大量这些播放偏移量。我可以在Excel中进行转换,也可以使用JavaScript。

任何关于公式的建议都将不胜感激!


4
你打算如何将Excel传递给JavaScript?你是指VBA吗? - GSerg
你可以使用Excel宏来完成这个任务。http://office.microsoft.com/zh-cn/excel-help/about-macros-in-excel-HP005201201.aspx首先,使用正则表达式获取时间值(例如1:29.460),然后通过“:”分割得到分钟部分和秒钟部分。接着,你可以通过((分钟*60)+秒钟)计算出所需的结果。 - Manjula
5个回答

9

以下是一个 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'

4
您可以使用以下代码:

您可以使用类似以下的代码:

function toSeconds(str) {
    var pieces = str.split(":");
    var result = Number(pieces[0]) * 60 + Number(pieces[1]);
    return(result.toFixed(3));
}

console.log(toSeconds("1:29.460"));   // returns 89.460


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

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)


0
你的单元格格式不正确,Excel 将你的信息存储为 hh:mm。
你应该像这样将小时列添加到单元格中:0:1:29.460 并确保其设置为时间格式。
然后,在另一列中,请确保单元格格式设置为数字,并添加以下公式(假设你的时间存储在单元格 A1 中):
=A1*24*60*60

由于Excel的特性,它知道1:29.460代表1分29.46秒(而不是1小时29分钟),因此=A1*86400应该可以直接使用,无需重新格式化......或者如果数据是实时值,则可以自定义格式为[s].000以显示89.460。 - barry houdini

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接