【问题标题】:How to convert a positive duration into a negative in Google Spreadsheet如何在 Google 电子表格中将正持续时间转换为负持续时间
【发布时间】:2016-07-17 00:53:36
【问题描述】:

我必须在 Google 电子表格应用程序中处理时间和持续时间,并且我必须使用负持续时间来计算。

问题:

-------------------------------------------------- ------ 开始 |结束 |持续时间 |以负数计算(出于某些原因) -------------------------------------------------- ------ 08:00 | 14:00 | 06:00 |不 10:00 | 15:00 | 05:00 |是的

如果“开始”和“结束”列的格式设置为“时间”,则可以在持续时间列中轻松计算差异。但是,使用(end-begin)*(-1)这样的简单解决方案将持续时间值转换为负值似乎不受支持。

第一个解决方案:

通过以下公式,我实现了一个目标:

[持续时间 = 结束 - 开始] (HOUR(duration)*60) + MINUTE(duration))(-1)

我必须将持续时间转换为分钟,乘以 -1 将数字转换为负数。但这会导致一种奇怪的行为:

-------------------------------------------------- ------ 开始 |结束 |持续时间 |以负数计算(出于某些原因) -------------------------------------------------- ------ 08:00 | 14:00 | 06:00 |不 10:00 | 15:00 | -7200:00:00 |是的

所以我尝试将它与 24、60、3600 相除,但似乎没有合适的值。直到我使用了幻数1440。 这个数字是 60 的倍数,正好是 24 倍。

最终解决方案:

[持续时间 = 结束 - 开始] ((HOUR(duration)*60) + MINUTE(duration))(-1))/1440

我的问题是:

  1. 有谁知道为什么要使用数字 1440?
  2. 还有其他方法可以解决这个问题吗?

【问题讨论】:

  • 除了我的问题:为什么我们必须使用不按我想要的方式格式化这些块的代码块按钮?
  • 代码标签的使用是可选的。我更喜欢使用 pre 标签,但也可以使用四个空格缩进。详情请见stackoverflow.com/editing-help
  • @Rubén 非常感谢。 :-)

标签: time google-sheets duration date-arithmetic


【解决方案1】:

Google 表格将日期和时间视为序列号(与 Excel 相同):

  • today() 是 42458;
  • 明天 = today() + 1 = 42 459;

每一天都算一个。

时间是介于 0 和 1 之间的数字。所以 1 中有 24 小时,1 小时中有 60 分钟。因此要获得持续时间

  • 以分钟为单位:= 24 * 60 = 1440;
  • 以秒为单位 = 24 * 60 * 60 = 86 400;

【讨论】:

  • 感谢您的回答!如果我理解正确的话,一天中的 24 小时是数字日期表达式中的小数位吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-09-05
  • 2013-07-16
  • 1970-01-01
  • 1970-01-01
  • 2017-02-23
  • 2023-01-04
  • 2021-07-21
相关资源
最近更新 更多