AVERAGEIFS:加权排名

AVERAGEIFS: Weighted rankings

我有一个计算不同组织中某些事件排名的公式:

=AVERAGEIFS(C2:C100, B2:B100, "A", C2:C100, ">0") * IF(COUNTIF(B2:B100, "A") < 3, 0.7, IF(COUNTIF(B2:B100, "A") < 10, 0.9, IF(COUNTIF(B2:B100, "A") > 30, 1.1, IF(COUNTIF(B2:B100, "A") > 50, 1.2, 1))))

这个公式有效,但出于某种原因,使用我拥有的数据,我知道 "A" 的 AVERAGEIFS 值应该乘以 1.2,因为 "A" 有 50 多个实例在 Col. B. 上面的公式给出的结果乘以 1.1.

我还尝试扩展上述公式以包含可能影响排名的其他因素:

=AVERAGEIFS(C2:C100, B2:B100, "A", C2:C100, ">0") * IF(COUNTIF(B2:B100, "A") < 3, 0.7, IF(COUNTIF(B2:B100, "A") < 10, 0.9, IF(COUNTIF(B2:B100, "A") > 30, 1.1, IF(COUNTIF(B2:B100, "A") > 50, 1.2, 1)))) * IF((AND(B2:B100, "A"), COUNTIF(S2:S100, "yes")>1), 1.1, 1))

运行 第二个公式给我一条错误消息:"The formula you typed contains an error."

不确定第二个公式出了什么问题,因为我继续在上面的第一个公式的基础上进行构建。

由于 30 小于 50,因此您的公式(短路)永远不会达到超过 30 作为单独条件的程度。也许是这样的:

=AVERAGEIFS(C2:C100, B2:B100, "A", C2:C100, ">0") * IF(COUNTIF(B2:B100, "A") < 3, 0.7, IF(COUNTIF(B2:B100, "A") < 10, 0.9, IF(COUNTIF(B2:B100, "A") > 50, 1.2,1))))

对于 10 到 30 以下的值,这依赖于默认系数 1

可能更容易看到发生了什么:

LOOKUP(COUNTIF(B2:B100,"A"),{0,3,10,30,50},{0.7,0.9,1,1.1,1.2})  

星号后。