使用VLOOKUP,COL_INDEX_NUM还有另一个选项吗?

时间:2016-01-25 15:11:09

标签: excel excel-formula vlookup

当前代码:

VLOOKUP("*"& SPID &"*",Carriers,6,FALSE)

我目前在动态电子表格上有26个编号为COL_INDEX_NUM且正在进行一些更新。如果我需要在列之间添加更多列,我目前必须重新编号我的所有VLOOKUP公式以匹配。

在我的主页上,我很容易构建第一个数据单元格col_index_num 2.一直到26个。当我需要在其间添加另一个单元格时,我必须单独调整所有这些公式并审计到确保它们都匹配。

有没有一种方法可以动态,或者这只是一个需要更好规划的功能?

我在网上找到的唯一一件事是那些提到VBA编码的网站,我无法合并。

非常感谢!

编辑:我确实包含了代码,但实际上这更像是一个关于VLOOKUP的问题。我张贴以确保每个人都理解我的问题与6所在的位置有关。

决议:

=INDEX(Carriers,MATCH(SPID,INDEX(Carriers,0,1),0),MATCH(A3,INDEX(Data!1:1,1,0),0))

这个公式简化了我的工作。 VLOOKUP正在做我想要它做的事情,但修改动态和新文档,造成了超出必要的工作量。通过使用INDEX公式作为我在下面选择的答案,这允许公式在它移动时跟踪列,而不需要停止和调整。

Carriers =我在名为Data的工作表上的所有数据减去标题 数据!1:1 =我的标题在同一张纸上 SPID =一个4位数字的数字来调用信息。

我通过移动一个列并添加另一个列来测试。它保留了信息。为了测试以确保它不是侥幸,我创建了另一张表以查看差异。旧表显示错误,而新表显示正确的信息。

我希望这有助于某人!

1 个答案:

答案 0 :(得分:2)

使用INDEX公式代替VLOOKUP。

E.g。 =INDEX(Carriers,MATCH("*" & SPID & "*",$A:$A,0),MATCH("MyColumnHeader",1:1,0))

  • 第一个参数将是您的参考表 - 如果需要,可以插入额外的列,
  • 第二个参数是您正在搜索您的SPID号码的列(这不必是第一列) - 这将返回行号。
  • 第三个参数是您要搜索的列标题 - 这将返回列号。

一个好的参考网站是:http://www.contextures.com/xlFunctions03.html

修改
作为更新,上面的公式引用工作表的A列和第1行,而不是Carriers范围。 =INDEX(Carriers,MATCH("*SPID*",INDEX(Carriers,0,1),0),MATCH("MyColumnHeader",INDEX(Carriers,1,0),0))
此公式使用INDEX(Carriers,0,1)使用INDEX(Carriers,1,0)和第1行使用<xsl:preserve-space elements="clmAttach1Link clmAttach2Link"/>

参考第1列