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})
星号后。