2017-04-24 158 views
0

我试图比较来自两个系统的两个数据集(供应商主人)。我们正在转向一个系统,所以我们希望避免重复。问题是名称,地址等可能略有不同。例如,名称可能以'Inc'或'Inc.'结尾。或者地址可以是'St'或'Street'。供应商的主人已经倾倒出色,所以我想拉他们进入比较他们,但我不知道如何处理不精确的匹配。我需要比较的数据字段是:姓名,地址,电话号码,联邦税号(如果填入),联系人姓名如何执行两个数据集上的不精确匹配

+1

但是你的问题是什么?本网站旨在提出具体的开发问题,而不是开放式的“建议”。看起来主要的问题可能是关于在一组数据上执行不精确的匹配。对于这个问题更重要的是你的意思是“系统” - 现在全部在Excel中?结合的“系统”会是什么样子?访问只会用于匹配?不要只列出几列“等”,而是列出你需要匹配哪些**键**列。将问题更新为“如何在两个数据集上执行不精确匹配”。 –

+0

对不起。这是我第一次发布一个问题,所以我没有意识到我在问一个开放式问题。是的,我想知道如何在两个数据集上执行不精确的匹配。我感谢你的时间。 – user7914935

+0

欢迎来到StackExchange!有时你会得到一些直言不讳的答案,但是当你学会以简明的方式制定问题时,你会发现每个人都非常有帮助。学会这样做也应该可以帮助你专注于解决问题的关键步骤。您发布的这类问题很可能是一个多部分问题,而不是单个问题的答案。你可以编辑这个问题并添加我提到的一些细节。继续并更新问题,提供关于关键字段的更多详细信息以及您将比较的记录数量。除Access之外,您还熟悉了其他什么工具/语言? –

回答

1

以下是我将如何继续。你很少会在Stack Exchange上得到这样的答案,因为你的问题如果不够集中。这是一组非常特定的工具(即数据库或电子表格)的通用步骤。正如我在我的评论中所说的,您需要搜索特定的答案(或者询问新的答案),以了解您在使用时使用的特定工具。在不了解所有细节的情况下,Access可以做一些初步的匹配,但是你也可以直接利用Excel甚至Oracle SQL,因为你已经将它作为一种资源。

  • 备份您的数据。
  • 为了匹配的目的制作一份数据的副本。
  • 确保两组数据的每条记录都有一个唯一的关键字(即自动编号字段或类似关键字),以便在确认匹配之前始终可以单独标识记录。
  • 创建新的匹配关键表和/或包含匹配的唯一关键字值列表的字段。
  • 创建新的“匹配”字段并将您的关键字段复制到这些新字段中。
  • 磨砂通过
    • 卸下周期和其他标点符号
    • 选择标准缩写,并通过在所有记录相同的值替换所有变化的所有可能的匹配字段中的数据。例如:替换“公司”和“公司”以“公司”
    • 修剪多余的空间,从年底与词之间
    • 格式化所有的电话号码完全相同的方式,或更好,但删除所有空间和标点符号出于比较的目的,不包括扩展信息:###### ####
    • 将多项属性解析并分割为单独的字段。名称 - > First,Middle,Last Name字段;地址 - >街道号码,街道名称,额外的地址信息。
      • 解析过程本身可以识别和协调格式化差异。
      • 允许分开更容易匹配。
    • 等等等等

一旦匹配字段被充分洗涤,现在匹配在不同的字段。

  • 定义匹配的优先级,即哪个或哪些字段可能产生具有最少量不确定性的可靠匹配。
    • 对于包含税号的记录,这似乎是最合乎逻辑的起始位​​置,因为该号码的精确匹配应该是有效的或可以指示数据中的错误。
  • 对于每种类型的匹配的,更新上述
  • 提到对于每个连续的匹配查询匹配的键字段,排除已经具有在匹配键表/字段的匹配记录。
  • 优化并重复所有这些步骤,直到您确信已找到所有匹配。
  • 将所有不匹配的记录添加到最终的合并记录集中。

你从来没有说过你有多少条记录。如果可能的话,可能值得您的组织有时间手动验证自动匹配,并列出并自动匹配并在需要时进行调整。

但即使您成功配对非精确匹配,仍有人需要决定为合并系统保留哪条记录。我想你可能会在公司名称和税号上匹配 - 实质上是验证匹配 - 但仍有不同的地址和/或联系人姓名。没有技术答案可以帮助您知道要保留或丢弃哪些数据。应该再次进行人工评审以确定合并后的记录。如果你正确地设置了这一点,一对夫妇的眼球可能会在一天内通过数千条记录。

+0

我不反对June7的观点。特别是如果你以前从未这样做过,那确实是令人望而生畏的。另一方面,我之前在不同的系统上做过各种工作。不,您不会找到任何魔术代码,只需几个步骤或以任何自动方式执行此操作。但是,如果您按照我所做的那样定义了一组步骤并开发了适当的查询集(包括选择和更新查询),则可以高效地完成这些查询。祝你好运! –

+0

您的方法很有意义,我非常感谢您花时间回答我的问题。在提出另一个问题之前,我会确保遵循该网站的礼仪。再次感谢! – user7914935