谷歌电子表格的日期/时间相比,到Excel坏了吗?(Google spreadsheet dates

2019-10-17 14:32发布

道歉另一个日期/时间有关的职位。 我没有得到我的脑袋解决此还,所以任何评论欢迎。 内容提要 :Excel可以用来与小经过时间的工作(运动事件时间,等等),但表不能,因为你需要编写一个脚本来显示小倍,和脚本螺丝的东西了,这样表不再将细胞作为当时间稍后手动更改的时间。

我所需要的时间通常很短,在一两分钟的区域,以秒为2位小数。 我必须做这些时间(通常只有比较,另一个时间)算法。

我们目前存储在Excel中的一切,工作正常。 如果定义在一个范围内的自定义显示格式,然后输入倍,像2:43.02 (2分钟,43.02s),那么细胞中仍存在的时候,和Excel可以做那些次运算。

我再上传Excel电子表格,并在表格中打开它。 有没有内置的格式扩展,因为有在Excel中,所以必须使用一个扩展函数来显示时间为2:43.02 ,例如(见下;该函数调用setNumberFormat )。 在新版表格版本的文件,Excel的时间仍然是时间和比较工作,一切看起来正常。

这里的问题。 一切只能直到你手动输入一个新的时间到表单元格。 如果我输入2:41.05 ,例如,细胞不再包含时间对象,所有算术坏了。 所以,我不能用表来代替Excel中。 我把一切都在Excel中,并将其上传偶尔,保持床单版本为只读。

有一个在表一些神奇它决定细胞是否包含日期或不是。 如果我使用一个内置的时间格式,然后床单知道这是一个时间,如果时间手动更改可以做算术。 如果我使用下面的函数(从更改时间格式在这里 ),然后是魔法消失了,我不能手动更改时间。

function EditFormat() {
  var oldname = SpreadsheetApp.getActiveRange().getNumberFormat();
  var name = Browser.inputBox("Current format (blank = no change):\r\n"+ oldname);
  SpreadsheetApp.getActiveRange().setNumberFormat((name=="")?oldname:name);
}

问:是setNumberFormat坏了? 有没有更好的方式来做到这一切的? 我能做些什么,其中保留的时间细胞的神奇状态剧本别的吗? 还是我必须回去到Excel?

谢谢。

Answer 1:

这是由于一个(可悲长期)床单错误由此解析器在两个方面失败:

  1. 格式2:43.02未成功强制转换为时间值,但格式0:02:43.02(或0:2:43.02)的。
  2. 即便如此,以秒为百分之被忽略直接输入值。

这两个点办理电子表格中的所有值,但只有点二适用于直接输入值。 因此,一个解决方法是通过一个公式来输入:

=VALUE("0:2:43.02")

或者也可以具有被格式化为纯文本的输入栏,然后有一个显示列类似地转换成经由式的时间值(与该显示栏将定制格式化的)。 或者,你可以有一个可以表示在活动单元格,在其中输入分割时间的输入框,然后创建一个公式像上面并填充它在细胞中的辅助脚本(一组数字格式可内置于该脚本为好)。

我希望这些变通办法是不必要的。



文章来源: Google spreadsheet dates/times broken compared to Excel?