Excel IF 函数与小时数

Excel IF 函数与小时数

我在使用 Excel 中的 IF 函数时遇到了问题。

我有一个单元格,设置为“日期/小时”,格式为“24:00”,我想要进行以下计算(假设单元格 A5):

if A5 < 0:30, then A5 == 0:30, else A2-A1

基本上:如果 A5 小于半小时,则必须显示半小时,否则显示差值。我这样做了:

=IF(A5<0:30;"0:30";A2-A1)

但不起作用。我遗漏了什么?

谢谢

答案1

"00:30"您不能直接在算术运算中使用诸如 之类的字符串<-就像您不能在算术运算中使用任何字符串一样。通常最好将它们存储为 Excel 用于日期和时间的数字,而不是使用字符串(请参阅https://excel.tips.net/T002176_How_Excel_Stores_Dates_and_Times.html#:~:text=Internally%2C%20Excel%20stores%20a%20date%20or%20time%20as,decimal%20point%29%20represents%20the%20time%20for%20that%20date。 更多细节)。

使用Time选项格式化单元格将以 格式显示它们。使用 格式(或格式)hh:mm:ss格式化单元格(例如 和 )将允许您使用小时和分钟输入时间值,但 Excel 实际上会将它们存储为内部日期/时间数字(您可以暂时将单元格格式更改为以查看这些数字是什么)。A1A2A5TimeCustomhh:mmGeneral

如果你这样做然后将你的公式更改为

=IF(A5<TIME(0,30,0),TIME(0,30,0),A2-A1)

会执行您想要的操作。该TIME函数接受三个参数,即小时、分钟和秒,因此TIME(0,30,0)与 00:30:00 的时间相同(即,以数字表示时为 1/48 或 0.0208333333333333)。

虽然 Hannu 提到的TEXT函数是正确的,并且会将数字转换hh:mm为该数字的表示形式,但结果值是字符串,因此 (i) 不能用于算术运算,并且 (ii) 不会直接保留底层数值。但是,该VALUE函数可用于从字符串中检索数值(例如=VALUE("00:30")提供数字 0.02083333333333333),因此底层数值被保留,但保留方式是间接的。

Excel 处理日期和时间的方法以及相关函数值得了解。如果你这样做,它将使你更容易理解和创建日期和时间的算术运算。

答案2

请注意,所有时间和日期值均存储为相对于基准日期的偏移量。

=TEXT(A5;"HH:MM")将显示 A5 内容为00:30
(结果可以以该格式在公式中使用!)
但实际值0.020833333333333代表与基准日期相差 30 分钟。

每 24 小时将值增加 1.0,并且上面使用的 30 分钟值如该公式所示=1/(0.020833333333333/30/60)- 显示结果为86400
...每 24 小时的秒数(= 24x60x60)。

在单元格中输入0并将其格式化为日期(包含年份和所有内容),您将看到基准日期;这可能因电子表格(软件!)而异,也取决于文件格式。

答案3

如果时间少于半小时,则不需要显示iF,您可以使用:30:00

=MAX(1/48,A5)

对于 Excel 来说,1是一整天,半小时是 (1/24)/2 或 1/48)

正如 Hannu 提到的,你确实需要将单元格格式化为时间

相关内容