INDEX MATCH返回非空白值

时间:2015-09-18 21:30:16

标签: excel

我有一个工作表,其中包括多年的顶部和数月的数据以及中间的数据。我想使用INDEX MATCH来获取数据,但它返回空白单元格。它看起来像这样:

__A__  __B__  __C__  __D__
Year    2001   2002   2003
Jan     1000   2000
Feb     1000   2000   8000
Jan                   8000 

现在,当我在行中查找Jan而在列中查找2003时,它会返回空白。

它来自不同的表格,但看起来有点像这样:

=INDEX($1:$948576,MATCH($B171,$B:$B,0),MATCH(C$1,$1:$1,0)) 

2003年1月只有一个数据点,所以如果我可以让它忽略空白就可以了。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

如果你知道你需要第四个数据(例如 2003 )列,那么忽略空格的公式就相当简单了。

=INDEX(D:D, AGGREGATE(15, 6, ROW($1:$9999)/((A$1:A$9999="Jan")*SIGN(LEN(D$1:D$9999))), 1))

但是,如果2003在单元格中,您必须使用它来确定要检索的列,它会变得更复杂。

Non-blank lookup with multiples

G5中的标准配方¹是

=INDEX($A:$D, AGGREGATE(15, 6, ROW($1:$9999)/(($A$1:$A$9999=G$2)*SIGN(LEN(INDEX($A$1:$D$9999, 0, MATCH($F5,$1:$1, 0))))), 1), MATCH($F5,$1:$1,0))

如果有一些列不可避免地检索空白,IFERROR function可用于提供一些错误控制。

您可能还有兴趣调整Find first non-blank cell for each column from rows that match lookup to merge duplicate matches中的VBA来修复和整理您的数据。

¹ Excel 2010引入了AGGREGATE function。早期版本不提供。