我有生物识别考勤设备的数据,我的任务是创建一份员工每天迟到情况的报告。
- 我有 A 列,格式为 h:mm:ss AM/PM
- 我有 B 列,格式为 h:mm:ss AM/PM
只有当 A 列中的时间状态大于 B 列中的时间时,我才需要分别计算 C 列和 D 列中小时和分钟的时间差
| Column A | Column B | Column C | Column D |
| 8:23:00 AM | 9:00:00 AM | 0 | 0 |
| 9:00:00 AM | 9:00:00 AM | 0 | 0 |
| 10:05:00 AM | 9:00:00 AM | 01 | 05 |
请帮忙!!我已经被这个问题困扰了三天了 :(
答案1
答案2
与 Excel 中的许多功能一样,有很多方法可以实现这一点。下面是另一种方法。
首先,要认识到格式无关紧要。时间以一天的小数形式存储。从中,您可以选择一种格式以您想要的任何人为可读的形式显示它,或者只显示派生的时间组件(就像 BradR 使用 TEXT 函数只显示小时数一样,Excel 找到了如何从时间值中提取小时数的方法)。
由于 Excel 将所有时间值视为一天的分数,因此无论您如何格式化,其内部单位都是相同的。因此,您可以对时间进行简单的算术运算。您无需提取人性化的单位(例如小时或分钟)并使用这些单位;可以通过格式化或使用时间函数对结果进行操作。
要仅当 A1 大于 B1 时获取时间差,可以使用:
=MAX(0,A1-B1)
如果减法结果为负数(因为 A1 小于 B1),MAX 将返回0
。要仅显示特定时间单位,可以使用时间函数。HOUR 返回时间值中包含的整小时数,MINUTE 返回整分钟数。C 列和 D 列仅使用相关函数包装时间差。
C1: =HOUR(MAX(0,A1-B1))
D1: =MINUTE(MAX(0,A1-B1))