AVERAGEIFS:加权排名

时间:2015-12-11 15:39:26

标签: excel excel-formula conditional average countif

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

=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))))

这个公式有效,但出于某种原因,使用我拥有的数据,我知道&#34; A&#34;的AVERAGEIFS值。应该乘以1.2,因为有超过50个&#34; A&#34;在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))

运行第二个公式会给我一条错误消息:&#34;您输入的公式包含错误。&#34;

不确定第二个公式中出了什么问题,因为我继续建立在上面的第一个公式上。

1 个答案:

答案 0 :(得分:1)

由于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})  

在星号之后。