2017-05-05 208 views
1

从这个问题继最后一个单元: Array that outputs cells in a column AFTER a certain point阵列不输出

我已经做出了简化的示例来测试式

=IFERROR(INDEX($A$1:$A$11,SMALL(IF(ROW($A$1:$A$11)-MIN(ROW($A$1:$A$11))>MATCH("WORD",$A$1:$A$11,0),ROW($A$1:$A$11)-MIN(ROW($A$1:$A$11))),ROWS(A$1:A1))),"") 

这是我的样本数据在列A和阵列式柱B(已输入与CTRL + SHIFT +输入) :

example

该数组正在输出在WORD之后找到的单元格。但是,您可以看到阵列未显示10。 如果我将公式中的所有范围更改为A1:A12,我将显示,但这是不正确的。

这里发生了什么?

+1

您是否尝试将'> MATCH'改为'> = MATCH'? –

+1

你提供的数组公式给出了我在每个单元中的“6”... –

+0

相同。我没有得到你在截图中显示的结果。 –

回答

3

您需要1从小添加到该行输出,11 - 1 = 10,那么你需要使用> = MATCH应对>匹配:

=IFERROR(INDEX($A$1:$A$11,SMALL(IF(ROW($A$1:$A$11)-MIN(ROW($A$1:$A$11))>=MATCH("WORD",$A$1:$A$11,0),ROW($A$1:$A$11)-MIN(ROW($A$1:$A$11))+1),ROWS(A$1:A1))),"") 

作为一个数组公式在退出编辑模式时,必须使用Ctrl-Shift-Enter而不是Enter键进行确认。如果正确完成,Excel将在公式周围放置{}

enter image description here

+0

优秀,现在输出正确。 – Aurelius

+0

注意斯科特还添加了+1,以避免匹配第0场比赛“WORD”。好的解决方案 – kabanus

+0

@Demo。但由于某种原因,你似乎错误地使用了我的原始公式。 –