Excel 在另一个表中查找值,返回行索引
我对Excel函数缺乏经验,需要以下场景的帮助: 表一有两列:Excel 在另一个表中查找值,返回行索引,excel,excel-formula,Excel,Excel Formula,我对Excel函数缺乏经验,需要以下场景的帮助: 表一有两列: X Y 3.2 result 4.7 result 1.2 result 表二列有: A B C D 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]
X Y
3.2 result
4.7 result
1.2 result
表二列有:
A B C D
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;
}
换句话说,我想在表II中找到X[1](它将始终在那里,并且总是只有一次),并从A列返回对应的值[与匹配相同的索引]
我已经看过HLOOKUP了,但还有更多的是一个命令。请帮忙
[编辑] 我尝试过这个
=INDEX(第1列,IFERROR(匹配)(第2列,第2列,第0列),IFERROR(匹配)(第2列,第3列,第0列),IFERROR(匹配)(第2列,第5列,第0列),IFERROR(匹配)(第2列,第6列,第0列),IFERROR(匹配)(第2列,第7列,第0列),IFERROR(匹配(第8列,第8列,第0列),第9列,第9列)
但是我得到了“比当前文件格式允许的嵌套级别更多”的错误。如果我只删除一个IFERROR(MATCH(I2,Column8,0)
,那么它就可以工作了。但是我需要第2列到第9列,第1列保存索引
我认为Excel2007和2010不再有嵌套限制了。它给出了什么
(对于任何刚刚阅读本文的Excel新手,“Column1”等都是通过选择列、右键单击所选内容和“定义名称”来实现的。)
[编辑二] 所以我“解决”了我的嵌套问题,将公式分成两部分,用一个
+
,如果两边都不匹配,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))
)
我已经接受了Chris的回答,因为他做了大部分工作,但我仍然想知道我的工作环境是否良好,是否有一种更短/更好的方法来完成这项工作
谢谢。这里有一个Y的可能公式(假设表I位于G:H列中) 注意IsError函数是在Ecel 2007中引入的 如果表实际上定义为excel表,则可以使用
=INDEX(Table2[Column1],IFERROR(MATCH([@X],Table2[Column2],0),IFERROR(MATCH([@X],Table2[Column3],0),MATCH([@X],Table2[Column4],0))))
(替换您自己的表和列名)这里有一个Y的可能公式(假设表I位于G:H列中) 注意IsError函数是在Ecel 2007中引入的 如果表实际上定义为excel表,则可以使用
=INDEX(Table2[Column1],IFERROR(MATCH([@X],Table2[Column2],0),IFERROR(MATCH([@X],Table2[Column3],0),MATCH([@X],Table2[Column4],0))))
(替换您自己的表名和列名)如果您的值是唯一的,则可以使用以下公式,而无需进行任何嵌套:
=索引(第1列,SUMPRODUCT((表2=G24)*行(表2))
如果您的值是唯一的,则可以使用以下公式,而无需进行任何嵌套:
=INDEX(column1,SUMPRODUCT((Table2=G24)*ROW(Table2))
如果你可以在表2中添加一列,那很容易。你可以吗?我想我可以,然后我可以隐藏它。但是为什么呢?在这种情况下答案更简单(我回答如下)我删除了我的答案,因为这是错误的(我误解了这个问题)如果你可以在表2中添加一列,这很容易。可以吗?我想我可以,然后我可以隐藏它。但是为什么?答案更简单。在这种情况下(我在下面回答)我删除了我的答案,因为这是错误的(我误解了这个问题)。你的解决方案是有效的。但是我没有提到我在表2中实际上有9列。所以我得到了一个错误(嵌套级别太多)当我尝试使用8个IFERROR时。有没有办法?是否可以将Column2 | | | Column3 | | |····················································(嵌套层次太多)当我尝试使用8个IFERROR时。有没有办法?是否可以将Column2 | | | Column3 | | | | | | | Column9关联到一个数组中并将匹配应用到该数组?*连接。我已经用目前为止所做的更新了我的问题。