为了输入简单起见,并防止 Excel 插入不必要的时间和上午/下午信息,我使用以下自定义格式以分钟和秒为单位输入时间:"00\:00"
我正在尝试用这种类型的数据来计算时间差,但 Excel 无法将其识别为 60 进制数。有没有办法可以保留这种格式并仍然计算结果?
例如,如果 A1 读取“00:30”且 B1 读取“01:21”,我如何让 C1 计算并得出“00:51”?
答案1
这是一个使用公式来实现的方法,尽管这个等式中有太多括号,我快要斜眼看了。
由于自定义格式中最右边的两位数字代表秒数,我们可以使用 RIGHT() 将它们分开。然后从原始数字中减去该数字,即可得出自定义格式中的“分钟”。
我将从碎片开始,然后根据各个部分构建公式。
Convert B to Seconds = (60*(B2-RIGHT(B2,2))/100)+RIGHT(B2,2)
Convert A to Seconds = (60*(A2-RIGHT(A2,2))/100)+RIGHT(A2,2)
Difference in Seconds = ((60*(B2-RIGHT(B2,2))/100)+RIGHT(B2,2))-((60*(A2-RIGHT(A2,2))/100)+RIGHT(A2,2))
Now to convert back to the original format:
1. Divide the difference by 60, truncate it, and multiply by 100 to get the minutes part.
2. Divide the difference by 60, and take the modulus to get the seconds part.
3. Add 1 and 2.
Minutes Part = 100*(TRUNC((((60*(B2-RIGHT(B2,2))/100)+RIGHT(B2,2))-((60*(A2-RIGHT(A2,2))/100)
Seconds Part = MOD((((60*(B2-RIGHT(B2,2))/100)+RIGHT(B2,2))-((60*(A2-RIGHT(A2,2))/100)+RIGHT(A2,2))),60)
And here's the entire formula:
=100*(TRUNC((((60*(B2-RIGHT(B2,2))/100)+RIGHT(B2,2))-((60*(A2-RIGHT(A2,2))/100)+RIGHT(A2,2)))/60))+MOD((((60*(B2-RIGHT(B2,2))/100)+RIGHT(B2,2))-((60*(A2-RIGHT(A2,2))/100)+RIGHT(A2,2))),60)
呼!希望这能有所帮助。