2

这是针对我正在从事的研究生项目的,如果有任何帮助,我将不胜感激!我只想说我不熟悉 VBA,我知道这可以用一个简单的公式来完成。我试图计算一个人在床上度过的时间。这是我解释如何计算我需要的值的旧笔记,但由于某种原因它不起作用。

卧床时间公式应为熄灯时间和离床时间之差。我有一个旧笔记,这个公式应该是:
*
从两个军用时间格式的值计算在床上的时间(以分钟为单位)** A1=在床上的时间;B1=下床时间=(24*IF(B1>A1, B1-A1, 1-A1+B1)) 60

任何人都可以帮我完善此功能以使其正常工作,或帮助我制定一个新功能吗?

4

4 回答 4

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))))

Excel 时间表示例

如果你想这样做几分钟,你只需像这样改变那个公式:

=IF(((C6/(24*60))-(B6/(24*60)))<0,(24*60)+((C6/(24*60))-(B6/(24*60))),((C6/(24*60))-(B6/(24*60))))
于 2012-07-25T21:46:21.113 回答
0

不太清楚你在这种情况下所说的“军事时代”是什么意思——那个时代到底是什么样的?如果时间值是 Excel 中的有效时间值(无论格式如何),那么您可以在公式中使用此变体

=1440*IF(B1>A1,B1-A1,1-A1+B1)

例如,如果开始时间是晚上 11:00,结束时间是上午 8:15,那么该公式将给出结果 555(以分钟为单位的时差)

这个较短的公式也应该做同样的事情

=1440*MOD(B1-A1,1)

如果“军事时间”是指您的时间没有冒号,例如 2300 和 0815,那么您可以在第二个公式中使用这种变体

=1440*MOD(TEXT(B1,"00\:00")-TEXT(A1,"00\:00"),1)

于 2012-07-25T22:27:14.563 回答
0

伙计们,

只要时间格式为nn:nn(带冒号的军事时间),请执行以下操作:

将所有单元格格式化为TIME>13:30(13:30 是军事时间格式,是 TIME 下格式下拉列表中的第二项)

单元格 A1 有第一次

单元格 B1 有第二次

单元格 C1 是一个公式:=(2400-A1)+B1

于 2015-10-21T21:03:03.733 回答
-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。

于 2014-01-16T20:19:34.113 回答