将单元格格式设置为谷歌电子表格中的分钟:秒

时间:2016-06-26 11:33:19

标签: database google-sheets formatting

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

例如: - 1:30 转换为凌晨1:30:00

3 个答案:

答案 0 :(得分:2)

您可以将列/单元格预格式化为纯文本,以避免Google表格进一步进行“自动更正”:

enter image description here

然后,例如,如果您想SUM那样的话,可以将其包装在TIMEVALUE中,例如:

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

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

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

答案 1 :(得分:0)

更新:

我发现了一种新方法,它实际上可以为您提供所需的价值:

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

见图片进行转换:

enter image description here

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

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

=REGEXREPLACE(text(A2,"hh:mm:ss"),"(\d+):(\d+):(\d+)","$3:$1:$2")

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

对于上下文和概念证明,这里是一个截图:

在单元格A2中,您会看到原始1:30,如果您查看公式栏,则可以看到Google仍然将其格式化为12小时。

重申上述事实,在BEFORE下右侧的单元格中,您会看到我将原始值格式化为文本,以表明它确实以小时为单位解释hh:mm:ss的值,分钟,秒

C2有改变它的公式

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

enter image description here

答案 2 :(得分:0)

这是我要解决的方法:

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

此过程如下所示:

enter image description here

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

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

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


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

/**
 * 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")