我在 Excel 2010 中遇到了一个奇怪的问题。
单元C8
格格式为时间并具有公式=E48/24
。单元C9
格格式为时间并具有公式=24-C8
。单元E48
格格式为一般的。
如果我输入15.5
单元格,这将完美地工作;它分别在和中E48
返回15:30
和。8:30
C8
C9
我的问题是当E48
为空或明确包含 0 时,C8
和都C9
读作零。我希望它们分别计算为0:00
和24:00
。
目的是C8
显示设备在 24 小时内的启动时间和C9
同一时间段内的停机时间。
预期结果:
C | D | E || C | D | E
13:30 | | || 0:00 | |
8:30 | | || 24:00 | |
| | 15.5 || | | (empty)
我怎样才能做到这一点?
答案1
格式化您的C8
和C9
为自定义格式[h]:mm
然后,用C9
这个公式=1-C8
代替=24-C8
把 24 放在你的意志上C9
会破坏你的公式,如果E48
答案2
您现在所做的事情是出于错误的原因。显然,E48
是小时数,因此 C8
包含的=E48/24
是天数。如果 E48
介于 0 到 24 之间,C8
则将介于 0 到 1 之间,表示一天的一小部分。这对应于 Excel 的日期/时间存储方式 - 日期/时间存储为自 1900 年 1 月 1 日午夜以来的天数(必要时包括一天的一小部分)。这就是为什么C8
正确显示为对应于的小时数的小时数和分钟数的原因E48
。
但是,如果E48
介于 0 和 24 之间,并且C8
介于 0 和 1 之间,那么24-C8
就是介于 23.0 和 24.0 之间的数字。具体来说,如果(如您的示例所示)E48
为 15.5,那么C8
就是 0.645833333 并且C9
就是 23.35416667。由于C8
表示天数,因此24
被解释为天数。如果将C8
和的格式更改C9
为自定义格式d "days and" h:mm
,您将看到,对于E48
= 15.5,
C8
将是0 days and 15:30
并且C9
将是23 days and 8:30
。
因此,有两件事:
- 因为
C8
是天数,所以您想要C9
计算=1-C8
当天的剩余时间,而不是查看 24 天的时间。 在 Excel 单元格显示日期/时间值的格式中,
h
(和hh
)、mm
、ss
和AM/PM
标记仅查看值的小数部分,即一天的分数,它对应于一天中的时间. (请注意 23.35416667 值显示为 的方式23 days and 8:30
;8:30
对应于 0.35416667 分数。)当然,空白的
E48
会被解释为 0 值,并将导致C8
计算为 0。C9
设置为=1-C8
,它将计算为 1。如果您仍将C9
格式化为d "days and" h:mm
,您将看到它显示为1 days and 0:00
,这当然相当于 24 小时。要将其设置为展示因为24:00
,你需要使用[h]
在格式上,而不是简单的h
;即使用格式[h]:mm
而不是简单的h:mm
。[h]
令牌查看全部的单元格中的值(而不仅仅是小数部分)并将显示小时数≥24。