【问题标题】:Use RANK function for cell range based on criteria in separate cell range根据单独单元格范围内的条件对单元格范围使用 RANK 函数
【发布时间】:2013-04-12 19:05:29
【问题描述】:

我有一个关于 MS Excel 2010 中的 RANK 函数的问题。我有一个大工作表,我想根据列中的值对其行进行排名。这些值可以是正值或负值。我找到了有用的建议here,它解释了如何对列中的值进行排名,同时从排名和排名计数中排除所有等于零的值。他们使用以下公式:

IF(O24<0, RANK(O24,$O$24:$O$29) - COUNTIF($O$24:$O$29,0), IF(O24=0, "", RANK(O24,$O$24:$O$29)))

这很好用,但如果我可以仅在同一行但不同列中的对应值满足某些条件时对这些值进行排名会更好。

这样的事情可能吗?我该怎么做?我将如何更新上面的示例公式以使更改生效?非常感谢您的帮助。

P.S.:我试过放一张桌子,但它并没有真正奏效,抱歉......

【问题讨论】:

    标签: excel excel-2010 rank


    【解决方案1】:

    您可以使用COUNTIFS 函数根据另一列中的条件进行排名,例如复制了第 24 行中的这个公式[编辑以包含额外的 IF)

    =IF(O24=0,"",IF(N24="x",COUNTIFS(O$24:O$29,"&gt;"&amp;O24,O$24:O$29,"&lt;&gt;0",N$24:N$29,"x")+1,""))

    这将在列 N = "x" 的情况下从高到低排列,忽略零值

    请参阅this example N 和 O 列包含随机值 - 按 F9 重新生成新的随机值,Q 列中的公式结果将相应更改

    【讨论】:

    • 谢谢,这看起来很有趣,但我还不能让它工作。假设我不想排除零值,而只想根据 N 行进行排名。如果 N 行中的相应值大于 10,我只想对 O 行中的值进行排名。那么我将如何更新您的公式?
    • 对不起,写的不太好(你需要一个额外的 IF)试试这个版本的你的建议=IF(N24&gt;10,COUNTIFS(O$24:O$29,"&gt;"&amp;O24,N$24:N$29,"&gt;10")+1,"")
    • 耶,酷!这现在有效,因为它为 O 行中包含 N 行中的值 >10 的每个值返回一个“1”。但是我现在如何根据它们在 O 行中的值对这些剩余的单元格进行排名?
    • 你使用的是那个公式吗? (我需要编辑)它不应该为每一行返回 1,它应该对值进行排名(COUNTIFS 正在有效排名),我将尝试附上一个例子......
    • 啊,不,我忘了包括第二个“>10”。对不起,谢谢你,我想现在它工作得很好!!!
    【解决方案2】:

    当您添加新的排名标准时,当然可以继续创建更复杂的公式。但是,通过使用单步公式创建中间列,您将使电子表格更易于理解,并且更易于添加新条件或编辑现有条件。

    我的建议是创建一个不包括零的列(假设它在 P 列中):=IF(O24 = 0, "", O24)

    然后在 R 列中,消除负值(此步骤是不必要的,但您的原始公式做了类似的事情):=IF(P24 = "", "", P24 - MIN(0, MIN($O$24:$O$29)))

    现在在 S 列中,添加您的最新条件:=IF(OR(R24="", [enter newest criteria here]), "", R24)

    最后,T 列只对选中的行进行排序:=IF(S24="", "", RANK(S24, S$24:S$29))

    如果暴露列 P、R 和 S 很麻烦,您可以随时隐藏它们。

    【讨论】:

    • 谢谢!但是,如果可能的话,我宁愿将整个公式保持在一行中。有没有办法将您的公式合并为一个,以便我可以在 Excel 工作表上尝试?
    • 我的回应是,将所有这些公式组合到一个单元格中是一个糟糕的主意。您最好将每个部分拆分为自己的公式。这有助于可维护性、理解性并简化未来的编辑。
    【解决方案3】:

    使用表格格式对 barry houdini 的答案进行了重新措辞。 Value_Col 是包含要排名的值的列。 Group_Column 是按值分组的列,用于在组内排名

    =COUNTIFS([Value_Col], ">"&[@[Value]], [Value_Column],"0", [Group_Column], [@[Group]]) +1

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多