首先,您的方程式可以简化很多。现在,你有这个:
=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)
您可能希望从中创建一个函数,该函数将返回以 4 位小数舍入的结果:
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);
希望有帮助。