多列查找

有很多相关的post,但我还没有find一个这样的相当。 我目前正在通过excel来帮助加快一个过程多一点。 Excel文件有两个电子表格。 一个是数据第二个是总结。 在数据电子表格中,我有第一列作为名称,接下来的7列有数据值(并非全部填充)。

Name Data1 Data2 Data3 Country Address VA 123 456 621 USA ExampleSt. MD 123 France 123Street DC 621 Korea 999Avenue UseCol Value Data2 456 Data3 621 Data1 000 

我的问题是,我给了值“621”(它可以出现在多列,但不会出现在)。 我给了它应该在“data1,data2,data3 …”中的设置。 我怎么去找这个信息的名字? 没有VBA,只能通过excel。

我用这个代码在这里停了下来。

 =INDEX(A1:D4,MATCH('621',*What do I put here*,0) 

对于中间部分,问题的原因是因为我给了在另一个电子表格中使用哪个数据列。

编辑

所以,我遵循了Tim Williams关于使用胶印的说法。 但是,现在我有第二列,我正在尝试去。 所以我用来获取名称的代码如下

  =IFERROR(INDEX(A2:A4,MATCH(B7,OFFSET(A2:A4,0,MATCH(A7,B1:D1,0)),0,1),"ERROR") 

我必须对OFFSET部分进行哪些更改才能查找国家或地址单元格? 我相信我唯一需要改变的是内在的“匹配”function。 我应该做匹配(A7,B1:D1,0)+3到国家列吗? 谢谢。

只要每个数字每列只能出现一次,这对我来说很有效。

编辑 :从其他列获取匹配值,只需要调整公式的第一部分。

在这里输入图像说明

您缺less的参数是您在其中查找包含621的行的查找范围。只需引用所需的列范围,或者创build一个命名范围并引用该范围。

与一个给定的范围

我为NAME列创build了一个名为“NAMERANGE”的命名范围。
我为DATA1列创build了名为“DATA1RANGE”的命名范围。

使用这个公式,我可以检索任何包含给定列范围内给定值的行的名称:

=INDEX(NAMERANGE,MATCH(621,DATA1RANGE,0))

根据需要replace值和数据范围。

与dynamic的范围

如果您需要dynamicselect数据范围,则可以使用INDIRECT()函数生成对所需查找列的引用。 例如,在R1C1样式引用中,要获取DATA3列,可以使用以下公式:

=INDIRECT("C"&4&")

因此,在R1C1风格中,假设您要在第二个数据列(电子表格的第三列)中进行search,那么您的公式可能是:

=INDEX(NAMERANGE,MATCH(621,INDIRECT("C"&3),0))