使用VBA,Vlookup或Index Matching提取数据

时间:2016-03-15 04:08:45

标签: excel-vba indexing excel-formula match vlookup

这是我的问题。我试图使用Vlookup并收到#NA,然后我尝试使用索引匹配和公式中断并且返回不是全部存在。我在公式栏中收到一些0和一些#REF!

这就是我想要做的。我有2张工作表的工作簿。第一张名为' brazil'的工作表是我在D栏中写下我的公式的地方。 现在,我要做的是匹配工作表中的电子邮件地址'巴西电子邮件'以及来自巴西'的工作表然后从巴西的单元格中提取信息。工作表与列表中的电子邮件匹配的列。

该片段显示该公式在第3行D列中有效,并从A列(员工)返回信息,但在几行后断开并间歇工作。

目前我的公式如下:= INDEX(A2:A34,MATCH(C2,'巴西电子邮件'!$ A $ 2:$ A48,0))

以下是其他工作表的摘要:enter image description here

如果您对可能导致我的公式崩溃的原因有任何想法,那就太棒了。

如果需要,我愿意与您分享电子表格的样本。谢谢你的帮助。 :)

任何其他方法,如备用vlookup或vba都会很棒。 :)

更新3/15: 我能够更新我的公式并根据以下评论给出的好建议将其锁定。 :)

这是最新的更新。我还在收到#REF!在我的一些细胞上。我复制并粘贴以防有空格并验证该列设置为常规而不是文本。

什么可能给我#REF!什么时候它应该是来自匹配和索引单元格的数据。我看到其他行有效,但由于某些原因,D列上的某些单元格没有使用A列中的数据进行更新。

请帮忙,因为我有25,000行,我必须整理并尝试更聪明地工作而不是更难。 :)

我删除了原始代码段,因为给出的更新已更正了一些错误。这是当前#REF的最新图片!请协助:enter image description here

1 个答案:

答案 0 :(得分:0)

看看你的公式,似乎应该锁定第一个参数:

= INDEX( $ A $ 2:$ A $ 34 ,MATCH(C2,'巴西电邮'!$ A $ 2: $ A $ 48 ,0))

当您复制公式时,Excel会将第一位移出界限。

更新:

#REF!通常来自复制/粘贴公式或删除/移动引用的数据。

我在这里可以想到的是确保将工作配方放在顶部单元格中并完全粘贴。

同样重要:在MATCH部分的引用范围内,为公式添加了另一个锁(之前没有看到)。