Ms access 如何对两个数据集执行不精确匹配

Ms access 如何对两个数据集执行不精确匹配,ms-access,duplicates,Ms Access,Duplicates,我试图比较两个系统中的两个数据集(供应商主数据集)。我们正在转向一个系统,因此我们希望避免重复。问题是姓名、地址等可能略有不同。例如,名称可能以“Inc”或“Inc”结尾,或者地址可能是“St”或“Street”。供应商主数据已被转储到excel,因此我考虑将它们拉到access中进行比较,但我不确定如何处理不精确的匹配。我需要比较的数据字段有:姓名、地址、电话号码、联邦快递税id(如果已填充)、联系人姓名。以下是我的操作步骤。在堆栈交换中,您很少会得到这样的答案,因为您的问题可能不够集中。这是

我试图比较两个系统中的两个数据集(供应商主数据集)。我们正在转向一个系统,因此我们希望避免重复。问题是姓名、地址等可能略有不同。例如,名称可能以“Inc”或“Inc”结尾,或者地址可能是“St”或“Street”。供应商主数据已被转储到excel,因此我考虑将它们拉到access中进行比较,但我不确定如何处理不精确的匹配。我需要比较的数据字段有:姓名、地址、电话号码、联邦快递税id(如果已填充)、联系人姓名。以下是我的操作步骤。在堆栈交换中,您很少会得到这样的答案,因为您的问题可能不够集中。这是一组相当通用的步骤,不特定于特定工具(即数据库或电子表格)。正如我在评论中所说的,你需要搜索关于你使用的特定工具的具体答案(或询问新的答案)。在不了解所有细节的情况下,Access在进行一些初步匹配时肯定很有用,但您也可以直接使用Excel,甚至可以使用Oracle SQL,因为您可以将它作为一种资源

  • 备份您的数据
  • 为匹配目的制作数据副本
  • 确保两组数据的每条记录都有一个唯一的键(即自动编号字段或类似项),以便在确认匹配之前,始终可以单独识别记录
  • 创建新的匹配键表和/或包含匹配唯一键值列表的字段
  • 创建新的“匹配”字段,并将关键字段复制到这些新字段中
  • 将所有可能匹配字段中的数据按
    • 删除句点和其他标点符号
    • 选择标准缩写并用所有记录中的相同值替换所有变化。示例:将“公司”和“公司”替换为“公司”
    • 从末端和术语之间修剪多余的空格
    • 以完全相同的方式格式化所有电话号码,或者最好删除所有空格和标点符号以进行比较,不包括分机信息:
    • 将多个术语字段解析并拆分为单独的字段。姓名->姓名、中间名、姓氏字段;地址->街道编号、街道名称、额外地址信息。
      • 解析过程本身可以识别和协调格式差异
      • 允许更容易地单独匹配条款
    • 等等等等
一旦匹配字段被充分清除,现在在不同的字段上进行匹配

  • 定义匹配优先级,即哪些字段可能以最少的不确定性生成可靠的匹配。
    • 对于包含税务ID号的记录,这似乎是最合理的开始位置,因为该数字的精确匹配应该是有效的,或者可能表明数据中存在错误
  • 对于每种类型的匹配,更新上面提到的匹配键字段
  • 对于每个连续的匹配查询,排除在匹配的键表/字段中已经有匹配项的记录
  • 优化并重复所有这些步骤,直到找到所有匹配项为止
  • 将所有不匹配的记录添加到最终合并的记录集中
你从没说过你有多少唱片。如果可能的话,您的组织花时间手动验证自动匹配是值得的,方法是将它们并排列出,并在需要时手动调整它们


但是,即使您成功地配对了非精确匹配,仍需要有人决定为合并的系统保留哪个记录。我想您可能在公司名称和税务id上有匹配项——基本上是验证匹配项——但仍然有不同的地址和/或联系人姓名。没有技术上的答案可以帮助您知道保留或丢弃哪些数据。再次,应进行人工审查,以最终确定合并的记录。如果设置正确,一对人眼可能会在一天内浏览数千条记录。

但你的问题是什么?本网站旨在提出具体的发展问题,而不是开放式的“建议”。似乎主要的问题可能是对一组数据执行不精确的匹配。对于这个问题,更重要的是你所说的“系统”是什么意思——现在都在Excel中了吗?合并后的“系统”会是什么样子?访问权限将仅用于匹配?不要只列出几个带有“etc.”的列,而是准确列出需要匹配的关键列。将问题改为“如何在两个数据集上执行不精确匹配”。对不起。这是我第一次发布问题,所以我不知道我问的是一个开放式问题。是的,我想知道如何在两个数据集上执行不精确匹配。感谢您抽出时间。欢迎来到StackExchange!有时你会得到一些直截了当的答案,但当你学会以简洁的方式表达问题时,你会发现每个人都很有帮助。学会这样做也会帮助你专注于解决问题的关键步骤。您发布的这类问题可能是一个多部分的问题,没有一个问题可以回答。你可以编辑这个问题并添加我提到的一些细节。继续并更新问题,提供有关关键字段以及要比较多少记录的更多详细信息。除了Access,您还熟悉哪些其他工具/语言?好的。我更新了标题和细节。我使用Oracle SQL和Access。谢谢你带领我完成了这个过程。在我看来,你想要做的事情是巨大的,而且几乎不可能编码。无论您如何编码,都需要用肉眼逐案审查,以评估和确定缅因州J.J.史密斯的记录是否与缅因街詹姆斯J.史密斯的记录是同一个人的记录。这就是为什么你可能会得到一份新闻的多份副本