这是我正在研究的一个研究生项目,我非常感谢任何帮助!我只想说我不熟悉VBA,我知道这可以用一个简单的公式来完成。我想计算一个人在床上度过的时间。这是一个旧笔记我已经解释了如何计算我需要的值,但由于某种原因它不起作用。
床上时间公式应该是熄灯和下床时间之间的差异。我有一个旧的说明,这个公式应该是:
* 从两个军用时间格式值计算床位持续时间(以分钟为单位)**
A1 =躺在床上的时间; B1 =下床时间
=(24 * IF(B1> A1,B1-A1,1-A1 + B1)) 60
任何人都可以帮我改进这个功能,以便它正常工作,或者帮助我制定一个新功能吗?
答案 0 :(得分:3)
我想我有你想要的解决方案。 excel中的所有时间(无论是军事的还是标准的)都表示为0到1之间的十进制数。一旦你知道这只是一个公式来减去这两个:
=IF(((C6/(1/24))-(B6/(1/24)))<0,24+((C6/(1/24))-(B6/(1/24))),((C6/(1/24))-(B6/(1/24))))
如果你想在几分钟内完成,你只需改变那个公式:
=IF(((C6/(24*60))-(B6/(24*60)))<0,(24*60)+((C6/(24*60))-(B6/(24*60))),((C6/(24*60))-(B6/(24*60))))
答案 1 :(得分:0)
在这种情况下,不太确定“军事时代”是什么意思 - 时代到底是什么样的?如果时间值是Excel中的有效时间值(无论格式化),那么您可以在公式上使用此变体
=1440*IF(B1>A1,B1-A1,1-A1+B1)
例如,如果开始时间是晚上11:00,结束时间是08:15 AM,那么该公式将给出结果555(以分钟为单位的时差)
这个较短的公式也应该做同样的
=1440*MOD(B1-A1,1)
如果按“军事时间”表示你的时间没有冒号,例如2300和0815然后您可以在第二个公式上使用此变体
=1440*MOD(TEXT(B1,"00\:00")-TEXT(A1,"00\:00"),1)
答案 2 :(得分:0)
民间,
只要时间格式为nn:nn
(带冒号的军事时间),请执行以下操作:
将所有单元格格式化为TIME>13:30
(13:30是军用时间格式,是TIME下格式下拉列表中的第二项)
Cell A1第一次
Cell B1第二次
单元格C1是公式:=(2400-A1)+B1
答案 3 :(得分:-1)
=IF(A1>B1,
((2300-ROUNDDOWN(A1,-2))/100*60)+(ROUNDDOWN(B1,-2)/100)*60,
((ROUNDDOWN(B1,-2)/100)-(ROUNDDOWN(A1,-2)/100))*60)+
IF(A1>B1,60-RIGHT(A1,2)+RIGHT(B1,2),RIGHT(B1,2)-RIGHT(A1,2))
这将为您提供在START-A1和END-B1中输入的任意两个时间段之间的时间。午夜1200点是0,1205 = 5。