我有一个计算不同组织中某些事件排名的公式:
=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;
不确定第二个公式中出了什么问题,因为我继续建立在上面的第一个公式上。
答案 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})
在星号之后。