在另一个表中查找值,返回行索引

我对Excelfunction没有经验,需要以下scheme的帮助:

表我有2列:

XY 3.2 result 4.7 result 1.2 result 

表二有这些栏目:

 ABCD 1 1.2 0.0 2.3 2 4.1 3.2 0.0 3 0.0 4.7 0.0 

我将试图说明我想在C ++ / C#/ Java编程语法中做什么:

在Y [1]我想存储:

 foreach (int value in TableII) //look for X[1] in Table 2 if( value == X[1] ){ //when you find it, return A[value.rowNumber]; //return the corresponding value from A //break; } 

换句话说,我想在表2中findX [1](它总是在那里,总是只有一次),并且返回来自列A [与匹配相同的索引]的相应值。

我看了一下HLOOKUP,但还有更多的只是一个命令。 请帮忙。


[编辑]

我试过这=INDEX(Column1,IFERROR(MATCH(I2,Column2,0),IFERROR(MATCH(I2,Column3,0),IFERROR(MATCH(I2,Column4,0),IFERROR(MATCH(I2,Column5,0),IFERROR(MATCH(I2,Column6,0),IFERROR(MATCH(I2,Column7,0),IFERROR(MATCH(I2,Column8,0),MATCH(I2,Column9,0)))))))))

但是,我得到了“当前文件格式允许的更多层次的嵌套”错误。 如果我只删除一个IFERROR(MATCH(I2,Column8,0) ,那么它就可以工作,但是我需要列2到9,列1保存索引。

我以为Excel 2007和2010不再有嵌套限制。 是什么赋予了?

(对于任何新读Excel的人来说,通过select列,右击select和“定义名称”来创build“Column1”等)。


[EDIT2]

所以我通过将公式分成两个部分来“解决”我的嵌套问题,用a +表示ifs返回0,以防两边都不匹配。 这样你或者有something + 0或者0 + something ,所以它可以工作。

以下是我现在使用的公式:

  =INDEX(Column1, IFERROR(MATCH(I3,Column2,0),IFERROR(MATCH(I3,Column3,0),IFERROR(MATCH(I3,Column4,0),IFERROR(MATCH(I3,Column5,0),IFERROR(MATCH(I3,Column6,0),IFERROR(MATCH(I3,Column7,0),0)))))) + IFERROR(MATCH(I3,Column8,0),IFERROR(MATCH(I3,Column9,0),0)) ) 

我已经接受了克里斯的回答,因为他做了大部分的工作,但是我仍然想知道我的解决方法是否是好的做法,如果没有更好的方法来做到这一点。

谢谢。

这里有一个可能的Y公式(假设表I位于G:H列)

 =INDEX($A:$A,IFERROR(MATCH(G2,$B:$B,0),IFERROR(MATCH(G2,$C:$C,0),MATCH(G2,$D:$D,0)))) 

请注意在Ecel 2007中引入了IsError函数

如果您的表格实际上被定义为Excel表格,您可以使用

 =INDEX(Table2[Column1],IFERROR(MATCH([@X],Table2[Column2],0),IFERROR(MATCH([@X],Table2[Column3],0),MATCH([@X],Table2[Column4],0)))) 

(用你自己的表和列名替代)

如果你的值是唯一的,你可以使用下面的公式,而不必做任何嵌套:

=INDEX(column1,SUMPRODUCT((Table2=G24)*ROW(Table2)))