计算当时占用的资源?

我有四个专栏,分别是:

  1. 开始时间的应用程序

  2. 应用的结束时间

  3. 占用资源

例如,

Start time End time Occupied resources 0 30 10 20 70 10 30 50 25 

根据这些信息,我必须根据时间生成有关系统中总占用资源的信息。

因此,在每个应用程序的开始,当时占用的资源数量是多less? 我不能简单地总结第三列,因为应用程序在结束时间离开资源。 有什么build议么 ?

编辑

我的预期产出将是第四列,指出在“开始时间”占用资源的数量。 所以对于我上面的例子,输出将是:

开始时间TotalOccupiedAfterStart结束时间占用资源

 0 10 30 10 20 20 70 10 30 35 50 25 

所以在开始时间“0”,第一个应用程序获得10个资源。 在开始时间'20',第二个应用程序获得10个资源。 系统在这个时候的状态是20,因为第一个应用程序没有按照结束时间结束。 在开始时间30,第三个应用程序获得了25个资源,但是我们看到第一个应用程序以“30”结束,而第二个应用程序仍然按照其结束时间运行。 所以开始时间30的总占用资源是25。

有两个条件(开始时间和结束时间)的SUMIFS会给你你正在寻找的结果。 SUMIFS将第一个参数作为总结范围; 第二个(第四,第六,第八…)参数是标准范围(这个范围将被再次检查); 第三个(第五,第七,第九…)参数是标准本身(或者是您在标准范围内查找的值,或者是带有比较运算符的string,例如“<10”)。

假设您的问题中显示的数据是一个表,下面的公式使用结构化的引用/表公式 。 TotalOccupiedAfterStart栏的TotalOccupiedAfterStart应该是:

 =SUMIFS([Occupied resources], [Start time], "<="&[@[Start time]], [End time], ">"&[@[Start time]]) 

编辑:扩大给更详细的解释

我们要计算当前行[@[Start time]][Start time][End time]范围内的[Occupied resources]中所有值的总和。 这是Excel的SUMIFS的完美工作,Excel的描述如下:

SUMIFS(sum_range, criteria_range1, criteria1, ...)

添加由给定的一组条件或条件指定的单元格。

第一个参数是包含我们想要总结的值的范围。 所以我们在这里提供栏目[Occupied resources] 。 对于SUMIFS的其余部分总是需要配对:要检查的范围( criteria_range )以及根据( 条件 )testing该范围的值或条件。

要查看一条线的开始时间是否在另一条线的开始和结束时间之间,我们需要检查是否满足两个条件:

  1. 当前(app1)开始时间必须大于或等于我们正在testing的行的开始时间(app2) = app2之前或与app1同时开始
  2. 当前的开始时间必须小于我们正在testing的行的结束时间=在app1启动后closuresapp2

因此,对于第一种情况,需要检查的范围( criteria_range )是具有所有开始时间的列,并且“小于或等于当前开始时间”是标准。 我们的第一套criteria_rangecriteria是:

 [Start time], "<="&[@[Start time]] 

对于第二种情况,需要检查的范围是具有所有结束时间的列,并且“大于当前开始时间”是标准。 这使得第二套criteria_rangecriteria

 [End time], ">"&[@[Start time]] 

把它放在一起,我们有

  1. 值的范围将被总结
  2. 第一个条件的值的范围
  3. 第一个条件
  4. 第二个条件的值的范围
  5. 第二个条件

=

 =SUMIFS( range with the values to be summed up, range of values to be checked for the first condition, first condition, range of values to be checked for the second condition, second condition ) 

=

 =SUMIFS( [Occupied resources], [Start time], "<="&[@[Start time]], [End time], ">"&[@[Start time]] ) 

如果您的开始时间,结束时间和占用资源位于列2,列A,B和C中,则总资源将为

 =SUMIFS(C$2:C$9,A$2:A$9,"<="&A2,B$2:B$9,">"&A2) 

即将每个应用程序的开始和结束时间与当前行的开始时间进行比较。

如果考虑到第一个应用程序在t = 30仍然运行或刚刚完成,是否将> =或>取决于您。

在这里输入图像说明