涉及时间和数字格式的电子表格计算

Spreadsheet calculations involving time and number formats

我有一个包含以下相关数据的电子表格:

  |  A   |  B   |  C  |
--|------|------|-----|
1 | Time |Number|Const|
2 |01:00 | 100  |  5  |
3 |01:30 |      |     |
4 |02:00 |      |     |

在此设置中,第 2 行中的值是静态的。但是,需要计算 B 列中的其余单元格,通过获取它们的相邻时间值并获得它与 A2 之间的差值。然后需要将分钟的差异乘以 C2 中的常数以获得数字格式值。

马上,执行以下操作在 B3 中不起作用:

=A3 - $A * $C

我想要得到的结果是半小时与分钟的差乘以 5,即 150 应该是 30*5。

我认为这不会那么简单,因为我需要一种方法让 Calc 将时间值转换为可用值。为此,我还尝试了以下公式:

=TIME(,A3-$A,)*$C
=TIME(,A3,)-TIME(,$A,)*$C

第一个给我 502 错误,所以我确定这不是正确的方法。第二个给了我 0 的值,这与没有 TIME 公式的第一个公式的输出方式大致相同。

我也尝试过使用 TIMEVALUE 公式,但使用该公式引用任何时间格式单元格只会给我一个 NAME 错误。

我还可以尝试其他什么方法来做到这一点?

如果您在 A 列中的值被识别为时间,那么对于 LibreOffice 来说很容易。

如果我在单元格中键入 01:00,它会将其识别为时间,并将其更改为 01:00:00

如果您需要它的格式与 01:00 完全相同,您可以右键单击该单元格并选择合适的格式。在这种情况下,单元格看起来像 01:00,但如果您单击它,值栏显示 01:00:00

然后您可以使用这些时间值进行数学计算。 所以 =A3-A2 计算为 00:30:00

几乎可以使用MINUTE()功能,但不要。 MINUTE() 如果您的所有间隔都小于 1 小时,则可以使用。如果间隔大于一个小时,那么 MINUTE() 只会给出它的分钟部分(所以如果间隔达到 01:30,那么 MINUTE() 会给你 30这不是你想要的)。

相反,您实际上使用了存储日期的方式。 LibreOffice 似乎以与 Microsoft 相同的方式存储日期。它是一个浮点数。整数部分是天数,浮点数部分是天数

因此,如果您右键单击具有时间值 00:30 的单元格,然后选择格式/数字/常规,它将呈现 0.208333。您可以通过将其乘以 1440 将其转换为分钟 - 即 24*60 - 将您一天的分数转换为分钟数,即使间隔大于 1 小时也有效。

所以B3中的公式变为:

=B2 + ((A3-A2)*1440)*$C

您可以向下复制此公式 - $C 格式意味着它继续引用 C2 单元格。省略 $ 使其成为相对的,因此如果您将其复制并粘贴到 B4,LibreOffice 会将其更改为

=B3+((A4-A3)*1440)*$C