我有一个工作表,其中包括多年的顶部和数月的数据以及中间的数据。我想使用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月只有一个数据点,所以如果我可以让它忽略空白就可以了。
有什么建议吗?
答案 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在单元格中,您必须使用它来确定要检索的列,它会变得更复杂。
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。早期版本不提供。