在列表中排名#N / A

我正在尝试对列表中还包含#N / A的数字进行排名。 我已经看到了使用countif的build议,但是这种方法并没有那么成功。 一个想法是因为列表中的数字/值是使用公式生成的(在这种情况下是索引和错误公式),Excel无法将输出识别为可以sorting的数字值。 我试图改变格式为数字,但迄今为止还没有工作。 以下是用于生成需要排名的数字的公式:

={IFERROR(INDEX($BT$12:$BT$272,$BV13,COLUMNS($BW$12:BW13)),#N/A)} 

1950年至2015年的产出范围包括一堆#N / A。 任何想法如何排名这些数字?

两点build议:

  1. 更改生成要排名的数字的公式如下:

     ={IFERROR(INDEX($BT$12:$BT$272,$BV13,COLUMNS($BW$12:BW13)),"")} 

    空白( "" )不会导致#N/A排名相同的问题。

  2. 如果在列中继续存在#N/A非常重要,请创build一个帮助列,用于放置原始列的结果,但将#N/Areplace为空白。 假设您的#N #N/A值列是BX ,您可以通过将以下公式向下复制BY列来执行此操作:

     =IFERROR(BX12,"") 

    然后,您将应用您的RANK公式来看BY而不是BX

较新的AGGREGATE¹function被devise为忽略单元格中的错误(选项6 ),并具有可用于升序或降序伪RANK函数的LARGE和SMALL子function。

由于BU12中的arrays公式²:BV12,

 'ranked in ascending order =IFERROR(MATCH(BT12, AGGREGATE(15, 6, BT$12:BT$272, ROW(INDIRECT("1:"&COUNT(BT$12:BT$272)))), 0), "") 'ranked in descending order =IFERROR(MATCH(BT12, AGGREGATE(14, 6, BT$12:BT$272, ROW(INDIRECT("1:"&COUNT(BT$12:BT$272)))), 0), "") 

IFERROR包装器避免了直接对#N #N/Asorting所产生的任何错误的显示。

rank_aggregate


¹AGGREGATEfunction是在Excel 2010中引入的。它在早期版本中不可用。

² arrays公式需要用Ctrl + Shift + Enter 来确定。 如果input正确,Excel将花括号包括在公式中(例如{} )。 你不要自己input大括号。 一旦正确input第一个单元格,就可以像其他任何公式一样向下或向右填充或复制它们。 尝试和减less您的全列引用范围更接近代表实际数据的范围。 数组公式将计算周期对数化,所以最好将参考范围缩小到最小。 有关更多信息,请参阅数组公式的示例 。

excel无法排列我的名单的原因是因为输出不是数字。 这是一个解决方法:

 ={IFERROR(INDEX($BT$12:$BT$272,$BV13,COLUMNS($BW$12:BW13))+0,"")} 

如果您添加一个零,这将输出转换为一个数字。 现在你可以最终排名输出。 简单的解决scheme,但工程 感谢大家的意见 – 大声思考肯定有帮助!

试试这个,把你的错误结果改成极端:

 =IFERROR(INDEX($BT$12:$BT$272,$BV13,COLUMNS($BW$12:BW13)),99999) 

或者可以是零取决于方向。 然后您可以应用自定义格式:

 [<>99999]0;"#N/A" 

这将把#N #N/A的错误,但在后台保留一个数字。

那么你的排名公式:

 =IF(A1=99999,"",RANK(A1,$A$1:$A$100)) 

显然改变引用来匹配你的。