搜索两个excel列表中最佳文本匹配的公式

时间:2018-05-20 21:52:00

标签: excel

我有很多产品(+ 20,000件)的手术器械。有时我会收到这些产品的不同名称的请求,这些产品无法在我的列表中手动匹配。

我正在考虑一个公式来查找或建议每个单元格中常见单词的最接近匹配结果。

我创建了这个公式:

=INDEX('Products'!G:G,MATCH((("*"&LEFT(A2,5),'Products'!G:G,0))

(产品G:G指的是我的长名单。

它正确地给出了一些结果,但超过80%的结果带来了错误的结果。

请参阅附图以显示结果。

有没有办法可以获得更准确的结果?

或者我正在考虑找到每个项目的主要类别,例如:

  • 第1类:剪刀,牵引器,刀具等。
  • 第2类:直,弯曲,诅咒等
  • 第3类:夏普,钝器等
  • 类别4:10毫米,130毫米,24厘米等(尺寸)

这对我来说很容易。

然后使用相同的公式但参考常用词... 类似的东西:

=INDEX(Products!G:G,MATCH("*"&LEFT(E2,5)&"*"&F2&"*"&G2&"*",Products!G:G,0))

其中E2,F2,G2指类别.. 我尝试过,但它也给出了错误的结果。

Search Formula

1 个答案:

答案 0 :(得分:0)

我强烈要求你花一些时间来创建一个高质量的主表,然后为每个类别分离1个表。

使用clean(),trim(),proper(),heck,如果你需要在notepad ++中复制数据并启用查看所有符号然后在ansi utf utf8 wtf omgwtf或任何其他编码之间切换以确保你不要有任何隐藏的特殊字符而不是它。

你有4个类别,所以这是4个1列表。命名他们。没有重复。没有垃圾。没有垃圾。对数据进行排序干净的名字/单词/你分类的任何东西。如果你绝对必须添加一个索引或关键列,那么继续前进但是帮自己一个忙,然后停在那里。使用不同的表来加深你的关系。

下一步是创建组合框。我不确定为什么,但excel中的组合框与vba编辑器中的组合框不同。你想要编辑器中的那个。您可以制作精美的用户表单,也可以制作简约的文本框设计。不管你喜欢什么只需确保组合框在属性中有RowSource字段。无论出于什么原因,如果我在创建盒子时不在vba编辑器中,我就不会得到那个选项。

你几乎可以在你为这些盒子制作的每个用户表单上想要drawmodal = false

你可能真的不需要超过4个盒子,但这取决于你所做的事情,这取决于你。命名你的组合框。

验证每个框有:matchentry = 1-fmMatchEntryComplete 我建议:style = 0 - fmStyleDropDownCombo 这将允许您开始键入并自动完成第一个匹配,并允许您从下拉列表中选择,从您键入的名称的第一个匹配开始。 您可以设置列表中的元素数量。如果您的计算机速度慢,那么默认值为8。如果你有一个最好的,那么试一试。 您还可以更改字体以便于阅读和其他一些格式更改。

现在这是最重要的部分 - RowSource将成为这4个表中的一个

现在我已经给出了指示,让我解释一下原因。有些企业没有最佳实践,我现在正在使用oracle erp解决方案进行数据管理,但前端未使用。数据输入在excel中完成,并使用批处理加载到oracle中。 oracle中的查找继续成为ap / ar团队的心理障碍,所以我完全按照我的建议行事,但又向前迈了几步。

我拉了供应商大师,我拉了客户主人 我清理了数据并编译了简单的纯净1列表 然后我为组合框创建了一个表单

首先来了ap与供应商名称 供应商编号 供应商汇款地点 我们的订购设施号

选择供应商名称会使用可能的供应商编号填充供应商编号框。汇款地点和订购设施相同

我提取了一年的交易数据并创建了一个gl表。一些供应商只使用过1次gl帐户。几个。每个gl旁边都有一个%数字。表示去年从该供应商发布到该gl的交易的价值。

接下来是发票字段的日期选择器和文本框。 在表单上得到它的好看和紧张,设置制表位,添加一个提交按钮,突然间我们有一个比oracle更好的前端excel平台 - 因为人们使用

我还没有完成ar方面,但它会完成,我会让天使们欢喜并在未来几年里唱出我的名字。

1:1与自动填充和下拉功能相匹配,你无法击败它。这就是我的建议。

祝你好运!