INDEX(,MATCH())组合在格式为TABLE的数据中返回#VALUE错误


0

我有两个数据集(在同一个工作簿中有两个表),我需要在另一个数据集中找到一个数据集。两个集都被格式化为表格,我正在使用 INDEX(MATCH()) 组合以匹配条目。如果找到匹配项,则来自其中一个字段的值 数据集1 应该出现在添加的列中 Dataset2 。那样我就知道有匹配,我真的不在乎返回的值。

不幸的是,我没有 uniqueID 为了匹配,我必须在每个表中使用两个字段的组合来尝试生成匹配。领域是 [@Name][@Surname]因为名字,这在克罗地亚语中不太理想 Adis Terzic 显然不会匹配 AdisTerzić

问题

  • 添加了列(字段)in Dataset2 不显示从中返回的任何值 数据集1 但它所显示的只是一个 #VALUE 错误。

我有什么想法我做错了吗?

我的语法如下:

=INDEX(Table1[@Field4],MATCH(Table1[@Name trim]&Table1[Surname trim], Table2[Name]&Table2[Last name], 0)) 

这是一个示例工作簿(Google Drive)。

  • 数据集1(表1)有大约28000行和16列;
  • 数据集2(表2)有大约24000行和7列;

提前谢谢了!

Answers:


1

您可能需要考虑添加辅助列,而不是使公式组合字段。该公式更易于管理,您可以更轻松地比较上面提到的名称差异。

我会添加一个帮助列来组合你的名字。由于您使用的是表,它可能只是名为“NameLookup”=([Fname]&“”& [Lname])的列

然后你的索引匹配就像

=IFERROR(INDEX(Table1[@Field4],MATCH(Table1[NameLookup],Table2[NameLookup],0),"Not Found")

我实际上有一个类似的表,我需要比较两个名单。我面临着处理中间名首字母和后缀(如jr,sr,III等)的挑战。更不用说额外的空间...... 这是我如何使用辅助列将其分解的快照: enter image description here 以下是它的工作原理: “检查全名”是COUNTIF,将全名与第二张表上的列表进行比较。如果找到匹配,我很好。 “名字,中间名,姓名,没有后缀” - 这些都是TRIM公式的变体,以打破名称。

名字: =LEFT([@NAME],SEARCH(" ",[@NAME]))

中间: =IFERROR(MID([@NAME],SEARCH(" ",[@NAME],1)+1,SEARCH(" ",[@NAME],SEARCH(" ",[@NAME],1)+1)-SEARCH(" ",[@NAME],1)),"")

姓: =IFERROR(RIGHT([NAME],LEN([NAME])-SEARCH(" ",[NAME],SEARCH(" ",[NAME],SEARCH(" ",[NAME])+1))),RIGHT([@NAME],LEN([@NAME])-FIND(" ",[@NAME],1)))

没有后缀: =IFERROR(LEFT([@[Last Name]],FIND(" ",[@[Last Name]])-1),"")

最佳猜测是我用来帮助我找到与名称紧密匹配的列:

=IFERROR(IF([@[Check Full Name]]=0,INDEX(Marketing[NAME],MATCH([@DrillFirstNoSfx],Marketing[MarketFirstNoSfx],0)),""), "Not Found")

我在NAME单元​​格上使用条件格式来轻松确定是否匹配。黑色文本(检查全名> 0),红色文本表示完全不匹配,黄色文本表示存在紧密匹配(Best Guess列中的值)。

希望其中一些有助于指明您的解决方案!


0

enter image description here

在第一个单元格中输入此公式 New1 表2的列,然后向右和向下填充。

=IFERROR(LOOKUP(2,1/(($A$28:$A$30=$J28)*($B$28:$B$30=$K28)),C$28:C$30),"No Match")

根据需要调整数据范围。


嘿,谢谢!有没有办法以更“动态”的方式编写它,以便能够将数据添加到两个表中,因为它可以实现?我刚学会了如何使用查询和字段,所以我更愿意坚持这一点。如果我使用这个VLOOKUP方法,我将不得不一直跟踪范围:)
Alex Starbuck

如果你能处理VBA代码,我建议你!
Rajesh S
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.