使用多个计算条件执行索引匹配

时间:2015-12-28 16:15:42

标签: excel excel-formula

我已尝试使用以下公式进行与if语句的索引匹配但未获得正确答案。我在哪里弄错了?

=IF(INDEX(AE$3:AE$2000,MATCH(MIN(ABS(AE$3:AE$2000-$AS3)),ABS(AE$3:AE$2000-$AS3),0)),AD$3:AD$2000=$AN3)

=IF(AD$3:AD$2000=$AN3,INDEX(AE$3:AE$2000,MATCH(MIN(ABS(AE$3:AE$2000-$AS3)),ABS(AE$3:AE$2000-$AS3),0)),IF(AD$3:AD$2000=$BN3,INDEX(AE$3:AE$2000,MATCH(MIN(ABS(AE$3:AE$2000-$AS3)),ABS(AE$3:AE$2000-$AS3),0)),"")) 

=--(AD$3:AD$2000=$AN3)INDEX(AE$3:AE$2000,MATCH(MIN(ABS(AE$3:AE$2000-$AS3)),ABS(AE$3:AE$2000-$AS3),0)) 

=INDEX(AE$3:AE$2000,MATCH(MIN(ABS(AE$3:AE$2000-$AS3)),ABS(AE$3:AE$2000-$AS3),IF(AD$3:AD$2000=$AN3),0))

=INDEX(AE$3:AE$2000,MATCH(SMALL(IF(AD$3:AD$2000=$AN3,ABS(AE$3:AE$2000-$AS3)),1),IF(AD$3:AD$2000=$AN3,ABS(AE$3:AE$2000-$AS3),0))

1 个答案:

答案 0 :(得分:1)

试试这个数组¹公式。

=INDEX(AE$3:AE$2000, AGGREGATE(15,  6, ROW($1:$1998)/((MIN(ABS(TRANSPOSE(AE$3:AE$2000)-$AS3))=ABS(AE$3:AE$2000-$AS3))*(AD$3:AD$2000=$AN3)), 1))

AS3

¹数组公式需要用 Ctrl + Shift + Enter↵完成。一旦正确进入第一个单元格,就可以像任何其他公式一样向下或向右填充或复制它们。尝试并减少对更接近表示实际数据范围的范围的全列引用。数组公式以对数方式计算计算周期,因此将参考范围缩小到最小值是一种好习惯。有关详细信息,请参阅Guidelines and examples of array formulas