【问题标题】:AVERAGEIFS: Weighted rankingsAVERAGEIFS:加权排名
【发布时间】:2016-03-17 14:00:45
【问题描述】:

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

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

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

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

【问题讨论】:

  • 我将做一个假设,但问题出在最后一部分 IF((AND(B2:B100, "A"), COUNTIF(S2:S100, "yes")&gt;1), 1.1, 1) 这是假设:IF((AND(Countif(B2:B100, "A")&gt;1, COUNTIF(S2:S100, "yes")&gt;1), 1.1, 1) 你错过了一个计数。您需要将我输入的 >1 更改为您想要的。
  • 不知道为什么我需要额外的COUNTIF。该公式不计算 B 列中的任何内容,只是确保组织 A 存在。如果组织 A 存在,则公式应计算“是”出现在 S 列中的次数,如果 >1,则 AVERAGEIFS 值应乘以 1.1,否则为 1

标签: excel excel-formula conditional average countif


【解决方案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))))

这依赖于 1 的默认因子,用于 10 到 30 以下的值。

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

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

在星号之后。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    • 1970-01-01
    • 2013-04-06
    • 2014-07-21
    • 1970-01-01
    • 2021-11-30
    • 1970-01-01
    相关资源
    最近更新 更多