【问题标题】:Search formula for best text match among two excel lists在两个 Excel 列表中搜索最佳文本匹配的公式
【发布时间】:2018-05-20 21:52:00
【问题描述】:

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

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

我创建了这个公式:

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

(其中 Products G:G 指的是我的长列表。

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

请查看附件图片以显示结果。

有什么方法可以得到更准确的结果吗?

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

  • 第 1 类:剪刀、牵开器、刀具等。
  • 第 2 类:直、弯曲、斜角等。
  • 第 3 类:锐器、钝器等
  • 4类:10mm、130mm、24cm等(尺寸)

这对我来说很容易做到。

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

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

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

【问题讨论】:

    标签: excel


    【解决方案1】:

    我强烈建议您花一些时间创建一个高质量的主表,然后为每个类别分出一个表。

    使用 clean()、trim()、proper()、哎呀,如果您需要在 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 列表 然后我为组合框创建了一个表单

    第一个带有供应商名称的应用程序 然后是供应商编号 然后是供应商汇款地点 我们的订购设施编号

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

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

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

    我还没有完成 ar 部分,但它会完成,我会在未来的几年里让天使们欢欣鼓舞并歌唱我的名字。

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

    祝你好运!

    【讨论】:

    • 突然想到我没有回答你的问题。我只触及了问题的一方面。我会 baaaaacck。在另一个电子表格上苦苦挣扎 10 小时后。
    • 非常感谢您的全面回答..这是一个很好的建议,我将立即开始工作..再次感谢您的时间:)
    猜你喜欢
    • 1970-01-01
    • 2023-03-05
    • 2014-02-24
    • 1970-01-01
    • 2021-11-19
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多