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

时间:2019-05-16 05:06:48

标签: spreadsheet openoffice-calc libreoffice-calc

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

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

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

马上行动,在B3中无法执行以下操作:

=A3 - $A$1 * $C$2

作为结果,我想要得到的是分钟数的半小时乘以5,这应该是150的30 * 5。

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

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

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

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

我还可以尝试其他什么方法?

1 个答案:

答案 0 :(得分:1)

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

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

如果您需要完全按照01:00进行格式化,则可以右键单击该单元格并选择适当的格式。在这种情况下,单元格看起来像01:00,但是如果单击它,则值栏会显示01:00:00

然后可以使用这些时间值进行数学运算。 因此=A3-A2的计算方式为00:30:00

几乎可以使用MINUTE()函数,但不要使用。如果您所有的时间间隔都少于1小时,那么MINUTE()会起作用。位,如果间隔大于一个小时,则MINUTE()仅给出其分钟部分(因此,如果间隔达到01:30,则MINUTE()将给您30这不是您想要的)。

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

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

因此B3中的公式变为:

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

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

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