我如何 return 来自 table 1 的值,来自包含 table 2 中一行的所有名称的行,而不管这些名称出现在哪一列?

How do I return an value from table 1, from a row which has all the names from a row in table 2, irrespective of what column those names appear in?

我有两个 table,都有列

First Name|Preferred First Name|Middle Name|Last Name|Preferred Last Name

我需要匹配 table 1 到 table 2 的记录。return 一个 table 1 的 ID 号显示在 table 2 . Table 1来自数据库,table 2包含更多关于这些人的信息,需要与他们在table 1中的身份证号码匹配。

如何 return 来自 table 1 的 ID 号,来自具有 table 2 中的所有名称的行,而不管这些名字出现在哪一列?

问题是名字都乱了。有些人在名字字段中输入了名字和中间名。一些叫 James 的人在 table 2 中记录了他们的名字 Jim,这将匹配他们的首选名字,而不是他们在 table 1 中的名字。有些人对他们的姓氏做了同样的事情 - 例如Bruggen-Pullman 先生将他的姓记录为 Bruggen,因为这是他使用的。它可能会记录在他喜欢的姓氏字段中,但如果要针对不同的字段进行检查,那将是不好的。有些人完全搞糊涂了,把他们的姓氏当成他们的名字,等等。

我试过这种方法,只是改变了圆形的行和列,但它 return 没有任何用处。

如果有帮助,则使用辅助列很好。

奖励积分: table 2 中的部分记录可能是正确的,但不包括所有名称。因此 Collins [中间名字段中的空字符串] Jado in table 2 应该与 table 1 中的记录 Jado Sally Collins 匹配,但反之则不然。也就是说,如果它说 table 2 中的 Jonas,则 table 2 中的公式必须找到包含 Jonas 和所有其他名称的记录。

如果您能弄清楚如何从名称中过滤所有空格和标点符号,则加分。例如。 Micheal John O'Leary-Williams 应该成为 MichaelOLeryWilliams。我没有像 FILTER 这样的 365 功能可以玩,所以这可能是不可能的。

谢谢大家

如果您有太多记录无法手动查看,您可能需要执行某种模糊查找。 Power Query 具有此功能。还有一个 Excel 插件可以免费安装:

https://www.microsoft.com/en-us/download/details.aspx?id=15011

无论哪种情况,我们的想法都是使用相似性阈值来匹配相似的行。

此外,我不知道在这种情况下您是否可以控制数据收集,但我建议尽可能使用数据验证来缓解此类问题。

这是我使用加载项得到的输出。它成功匹配了所有3条记录。

你绝对可以做到这一点 Excel 但它可能需要一些中间步骤....

例如,我会拆分成单词,这样就不会有任何单元格具有多个名称。然后您可以创建一个字符串,将每个人的所有姓名组合成一个字符串。然后您可以使用“查找”功能,结合计数、index/match 和逻辑来非常接近(在我看来。)