在列表中排名#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议:
-
更改生成要排名的数字的公式如下:
={IFERROR(INDEX($BT$12:$BT$272,$BV13,COLUMNS($BW$12:BW13)),"")}
空白(
""
)不会导致#N/A
排名相同的问题。 -
如果在列中继续存在
#N/A
非常重要,请创build一个帮助列,用于放置原始列的结果,但将#N/A
replace为空白。 假设您的#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/A
sorting所产生的任何错误的显示。
¹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))
显然改变引用来匹配你的。