有很多相关的帖子,但我没有找到一个非常喜欢这样的帖子。我目前正在通过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所说的关于使用偏移的说法了。但是,现在我有了第二篇专栏文章。所以我用来获取Name的代码如下
=IFERROR(INDEX(A2:A4,MATCH(B7,OFFSET(A2:A4,0,MATCH(A7,B1:D1,0)),0,1),"ERROR")
我必须对OFFSET部分进行哪些更改才能查找Country或Address单元格?我相信我需要改变的唯一部分是内部“MATCH”功能。我应该匹配(A7,B1:D1,0)+3来到国家栏目吗?谢谢。
答案 0 :(得分:1)
答案 1 :(得分:0)
您缺少的参数是您在其中尝试查找包含621的行的查找范围。只需引用所需的列范围,或创建命名范围并引用该范围。
有一个有力的范围
我为名为" NAMERANGE"的NAME
列创建了一个命名范围。
我为名为" DATA1RANGE"的DATA1
列创建了一个命名范围。
使用此公式,如果任何包含给定列范围内给定值的行,我可以检索该名称:
=INDEX(NAMERANGE,MATCH(621,DATA1RANGE,0))
根据需要替换值和数据范围。
动态范围
如果需要动态选择数据范围,可以使用INDIRECT()
函数生成对所需查阅列的引用。例如,在R1C1样式引用中,要获取DATA3列,可以使用以下公式:
=INDIRECT("C"&4&")
因此,在R1C1样式中,假设您要搜索第二个数据列(电子表格的第三列),您的公式可能是:
=INDEX(NAMERANGE,MATCH(621,INDIRECT("C"&3),0))