首先,您的等式可以简化很多。现在,你有这个:
=SUM(
(
(
(
(
(
(B2/E2) + (C2/E2) + (D2/E2)
)
)
*
0.419
)
)
)
+
(
(
(
(
((B2/C2) + (B2/D2))/2
)
+
(
((C2/B2) + (D2/B2))/3
)
-
3.4777
)
)
)
/
7
)
+
0.0017
SUM函数似乎没用,因为你只有不同的单元格,而不是范围。另外,许多括号可以被删除。因此,函数变成这样:
(
(
B2/E2 + C2/E2 + D2/E2
)
*
0.419
+
(
(B2/C2 + B2/D2)/2
+
(C2/B2 + D2/B2)/3
-
3.4777
)
/
7
)
+
0.0017
写作,作为一个一个班轮:
0.0017 + ((B2/E2 + C2/E2 + D2/E2) * 0.419 + ((B2/C2 + B2/D2)/2 + (C2/B2 + D2/B2)/3 - 3.4777)/7)
为了让PHP与变量替换单元格地址:
0.0017 + (($members/$date + $topics/$date + $posts/$date) * 0.419 + (($members/$topics + $members/$posts)/2 + ($topics/$members + $posts/$members)/3 - 3.4777)/7)
你可能想使功能出来,将返回四位小数位四舍五入的结果:
function ranking($members, $posts, $topics, $date) {
$ranking = 0.0017 + (($members/$date + $topics/$date + $posts/$date) * 0.419 + (($members/$topics + $members/$posts)/2 + ($topics/$members + $posts/$members)/3 - 3.4777)/7);
return round($ranking, 4);
}
而且你可以这样调用该函数(我不知道的日期E2看起来像什么,从而30000):
$ranking = ranking(50, 60, 20, 30000);
希望有所帮助。
哇!您不仅解决了我的问题,而且实际上帮助我同时改进了电子表格。 E2采取董事会创建日期并衡量董事会存在的时间。该持续时间号码是公式其余部分使用的。 – Rick 2009-12-27 02:53:40