在 google 电子表格中将单元格格式设置为分钟:秒

Format cell as minutes : seconds in google spreadsheets

我希望记录我完成某个编程问题所需时间的数据。我正在使用 google spreadsheets 来保持我的表现。我面临的问题是,我希望细胞接受结果为 mm:ss,但 google sheet 正在将其转换为 12 小时 格式,即 hh:mm:ss,我怎样才能阻止这种情况发生?

例如:- 1:30 转换为 1:30:00 AM.

更新:

我找到了一种新方法,它确实能为您提供所需的价值:

=TEXT(TIME(,text(A1,"HH"),text(A1,right(A1,2))),"HH:MM:SS")

转换见图片:

之前的回答-没有完全解决:

所以你要做的是使用一个正则表达式替换函数,你可以成功地将它转换为持续时间值:

=REGEXREPLACE(text(A2,"hh:mm:ss"),"(\d+):(\d+):(\d+)","::")

使用 regexreplace 我基本上是将每个段分组并重新排序,以便将小时视为分钟,将分钟视为秒。

这里的上下文和概念证明是屏幕截图:

在单元格 A2 中,您会看到原始的 1:30,如果您查看公式栏,您会发现 google 仍在将其格式化为 12 小时时间。

重申上述事实,在 BEFORE 右侧的单元格中,您看到我将该原始值格式化为文本,以表明它确实按顺序解释 hh:mm:ss 的那些值时、分、秒

C2 有转换它的公式

最后 D2 指向转换后的公式以证明它现在确实将其解释为 hh:mm:ss 但分秒的顺序现在在正确的位置

您可以将 column/cell 预先格式化为 纯文本 以避免进一步 "auto-corrections" 通过 Google 表格:

然后,例如,如果您想要 SUM 那些时间,您可以将其包装在 TIMEVALUE 中,例如:

=ARRAYFORMULA(SUM(TIMEVALUE(A1:A10)))

假设将其输出为持续时间:

=ARRAYFORMULA(TEXT(SUM(TIMEVALUE(A1:A10)), "[mm]:ss"))

以下是我将如何解决:

  1. 作为纯文本输入(根据
  2. 0 hours 连接到您的字符串。
  3. 使用更多格式转换为所需格式(123 下拉菜单) >> 更多格式(底部) >> 更多日期和时间FORMATS >> 通过格式化 Minute (01):Second (01) 创建您自己的格式 >> APPLY

这个过程如下图所示:

您可以将步骤 2 和 3 与以下功能结合使用:

=TIMEVALUE(CONCAT("0:",A2))

然后根据需要重新格式化。


专家方法:
通过为此创建自定义函数进入下一个级别。从 中汲取灵感,您可以创建以下自定义函数:

/**
 * Converts a string to a timestamp with specific formatting. NOTE:, 
 * user will need to format date on spreadsheet for correct formatting.
 *
 *@param {string} string string representing minutes and seconds (Ex "1:30")
 *@param {string} format string representing timestamp format (Ex. "mm:ss")
 @return timestamp with specific formatting
 *
 *@customfunction
 */
function getTimestamp(string,format) {

  // Start with the turn of the 20th century...
  var baseDate = "1900-01-01 "

  // Create a timestamp using the input string
  if (format=="mm:ss"){
    var newString = baseDate + "00:"+string
  }
  if (format=="HH:mm:ss"){
    var newString = baseDate + string
  }
  if (!newString){
    return "ERROR"
  }

  // Create your date and send off!
  var myDate = new Date(newString)
  return myDate
}

按如下方式使用此功能:

=getTimestamp(A2,"mm:ss")