AVERAGEIFS:加权排名

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

=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,因为在B列中有超过50个“A”的实例。公式乘以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)) 

运行第二个公式给我一个错误消息:“您input的公式包含错误。”

不知道第二个公式出了什么问题,因为我继续build立在上面的第一个公式上。

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

星号后。