Excel 如何在24小时内计算(汇总)适当百分比(不超过100%)
主题听起来很简单,但我感兴趣的任务却不是 所以,我得到了一组每天都在变化的测量数据,一天内有更多的实例!因此,正如您在2019年2月7日看到的那样,您有5个实例正在以不同的时差进行更改(系统更改)。好吧,这就是重点,我需要有它的百分比,但在24小时内!不像你在这个例子中看到的那样,100%以上都是胡说八道 数据本身不断地记录数据,并且系统更改是自动的。有时每天可以有1-2个实例,有时超过5倍 我用Excel 如何在24小时内计算(汇总)适当百分比(不超过100%),excel,vba,excel-formula,excel-2013,array-formulas,Excel,Vba,Excel Formula,Excel 2013,Array Formulas,主题听起来很简单,但我感兴趣的任务却不是 所以,我得到了一组每天都在变化的测量数据,一天内有更多的实例!因此,正如您在2019年2月7日看到的那样,您有5个实例正在以不同的时差进行更改(系统更改)。好吧,这就是重点,我需要有它的百分比,但在24小时内!不像你在这个例子中看到的那样,100%以上都是胡说八道 数据本身不断地记录数据,并且系统更改是自动的。有时每天可以有1-2个实例,有时超过5倍 我用=mod计算时差(d2-d1,1)和=sumifs计算每个系统一天的总和,但这是错误的,因为它也要计
=mod
计算时差(d2-d1,1)
和=sumifs
计算每个系统一天的总和,但这是错误的,因为它也要计算前一天的时差并求和
有没有办法限制在24小时以内?不计算24小时以上发生的时差
我希望你得到我的关心。。这只是整个画面的一小部分,还有更多的活动,我有超过100%
我的意思是有一种方法可以把=MIN(1;I2)
放进去,但我只限于100%的准确率。不知道这是不是正确的方法
好的。这可能不完全是你想要的,但我希望这能帮助你达到目的 您有3个主要的静态数据列:
- 日期
- 开始时间
- 系统
MINIFS
创建了一个“Finish DateTime”列,这样,表的排序顺序就不会影响数据
然后我制作了另一列,显示完成时间或一天的结束时间,以先到者为准(MIN
)
然后我计算“总时差”——简单地说是“完成日期时间”减去“开始日期时间”
我再次这样做,但这次是“午夜截止完成时间”
我添加的最后一个helper列是显示午夜切断后经过了多少时间。这只是“总时间差”减去“午夜截止时间差”
到目前为止,一切都相当简单。这是一张图片,希望能让我的布局更清晰。(可以根据需要移动或隐藏列)
这些helper列的公式非常简单,因此我将不解释它们,而是在下面提供它们:
开始日期时间
Start Datetime:
=$A3+$B3
Finish Datetime:
=IF(MINIFS($D$3:$D$12,$D$3:$D$12,">"&$D3)=0,"",MINIFS($D$3:$D$12,$D$3:$D$12,">"&$D3))
Finish Time (Midnight Cut Off):
=IF($E3="","",MIN($A3+1,$E3))
Total Time Diff:
=IF($E3="","",$E3-$D3)
Time diff (Until Midnight):
=IF($E3="","",$F3-$D3)
Remaining Time (After Midnight):
=IF($E3="","",$G3-$H3)
---------------------------------------------------------------编辑:回应评论的澄清。
--------------------------------------------------------------- “FinishDateTime”公式实际上只是一个
MINIFS
函数
它看起来更复杂,因为我将它包装在IF
语句中,以处理没有完成时间的情况(即我们当前处于该时间段)
在这种情况下,为了避免返回“01/01/1900”(0),它将返回一个空字符串
因此,主MINIFS
功能:
MINIFS($D$3:$D$12,$D$3:$D$12,">"&$D3)
通过选择大于“开始日期时间”的最小“开始日期时间”来工作。(即下一个开始时间。)
如果您的数据总是按升序“开始日期时间”排序,那么您可以通过简单地=$D4
(即选择下面一行的开始日期时间)来完成同样的事情。然而,如果您随后对数据进行不同的排序,则会完全破坏结果
我总是喜欢让桌子“分类安全”
---------------------------------------------------------------结束编辑
--------------------------------------------------------------- 另外,正如您所看到的,我在末尾添加了一个完全独立的表 左侧有一个所有日期的列表(甚至是主数据中跳过的日期)。 以及水平运行的所有系统的列表(每个系统两列显示时间和百分比) 这个百分比就是那个特定系统的时间除以那个特定日子的总时间 困难的部分是计算时间。计算公式如下:
=IF($K3=MAX($A$3:$A$12),"",
MIN( "24:00:00",
SUMIFS($H$3:$H$12, $A$3:$A$12, $K3, $C$3:$C$12, L$1)
+
MAX(0,
SUMIFS($I$3:$I$12, $D$3:$D$12, MAXIFS($D$3:$D$12, $A$3:$A$12, "<"&$K3, $C$3:$C$12, L$1), $C$3:$C$12, L$1)
-
( $K3
-IF(MAXIFS($A$3:$A$12,$A$3:$A$12,"<"&$K3)=0, $K3, MAXIFS($A$3:$A$12,$A$3:$A$12,"<"&$K3)+1)
)
)
)
)
如果您有任何疑问,请让我知道。只是想澄清一下,您是想找到按天分割的总时差%,还是按系统和天分割的总时差?@Gravitate Good point!对不起,没有包括这一点,按系统和日期分割!所以对于这两个系统,因为我可以计算利用率并进行比较…对。。。但是你还想在每天的午夜切断时差吗?好像你几乎需要在每天结束时插入另一个条目?好吧,这是一件事,我希望它能准确地持续24小时,即使它将被“削减”。但不仅仅是像我的情况那样超过100%。这是可行的还是可能是问题,因为也有不同的情况,例如,你可以有一个“差距”为2天或类似的…我认为我几乎在那里。。。不过,这一差距正在引发一个问题。是否有最大天数的差距?当我完成另一项任务时,我将有更深入的了解,我现在正在做,但似乎公平!和我的方法有点不同。但唯一吸引我注意的是最后一张表,系统在哪里-两个系统的百分比如何相同?正如我所说,我必须并且将在回家后彻底了解细节,这是我目前唯一看到的。你做得很好,时间差肯定会有用的!哎呀。很抱歉别理它。复制和粘贴我的百分比公式只是一个愚蠢的错误。我现在已经修复了图像。太好了!我会一直写到考试结束!我会通知你的!这个[Finish Datetime]列让我很困扰……我刚刚尝试将日期/时间与“IF”语句连接起来,但它没有
<Total time diff up until midnight for the particular date & system>
+
<The time remaining after midnight from the day before>
-
<The number of days skipped>