有什么选择可以在Excel中进行FOR循环吗?

时间:2019-11-06 11:25:44

标签: algorithm excel-formula

我在计算Scrum任务的已完成平均值方面表现出色。我在Excel中也有Story point项。我的计算是:

结果= SP *完成百分比->此计算是针对每一行的,此后,我总结所有结果并得出摘要。 但是有时我要添加新任务,并且对于每个任务,我都会将计算结果添加到平均结果中。

在Excel中可以使用for循环吗?

for(int i=0;i<50;i++){ if(SP!=null && task!=null)(B+i)*(L+i)}

enter image description here 我的计算如下:

AVERAGE((B4*L4+B5*L5+B6*L6+B7*L7+B8*L8+B9*L9+B10*L10)/SUM(B4:B10))

1 个答案:

答案 0 :(得分:1)

首先,AVERAGE在您的公式中没有做任何事情,因为传递给它的参数只是一个单一值。您已经通过除以总和来进行平均计算。该平均值实际上是加权平均值,因此,您甚至无法使用简单的AVERAGE函数来实现该目的。

我看到了使该公式更通用的几种方法,因此在添加行时它仍然有效:

1。使用SUMPRODUCT

=SUMPRODUCT(B4:B100,L4:L100)/SUM(B4:B100)

行号100是任意选择的,但显然应该包含所有数据行。如果表下方没有数据,则可以增加较大的边距。您将希望避免这样一种情况:您认为您已向表中添加了一行,但实际上超出了公式的范围。使用适当的Excel tables可以避免这种情况。

2。使用数组公式

当公式变得更加复杂并且无法使用“简单” SUMPRODUCT执行时,这将是第二种解决方法。但是上面将转换为以下数组公式:

=SUM(B4:B100*L4:L100)/SUM(B4:B100)

在编辑栏中键入此内容后,请确保按 Ctrl + Shift + Enter 进行输入。只有这样,它才能充当array formula

同样,关于行号100的相同注释。

3。使用额外的列

使用额外的列存储每一行​​的B&L值的乘积时,事情变得容易。因此,您将在N4单元格中输入以下公式:

=B4*L4

...,然后将该相对公式复制到其他行。您可以根据需要隐藏该列。

那么总的公式可以是:

=SUM(N4:N100)/SUM(B4:B100)

使用此解决方案时,您必须注意在插入新行时总是复制行,因为您需要N列以使中间乘积公式也适用于任何新行。