根据多个标准找到最接近的匹配

时间:2013-11-29 08:33:04

标签: excel vba match lookup

我已经在VBA上工作了将近一年,并设法提取了一些相当令人印象深刻的东西,通常我可以通过本网站或其他人的一系列搜索找到任何我不确定的东西,但这次我我觉得它很可能是因为我真的不知道如何正确地构建搜索:(

我正在寻找创建一个分析客户销售历史记录的宏,然后从我们的畅销书列表中预先形成“您可能也喜欢”的搜索,并将最接近的匹配返回给他们的畅销书。该产品是书籍,由于几十年的书目关注行业内的细节,每个产品可以有多达20个类别,我想用它来找到壁橱比赛。

我有的信息(重要的位)

    Sheet 1 - product id - customer sales quantity 
                     Product id 2 -customer sales quantity
                     Product id 3 -customer sales quantity
                     Etc etc ( usually up to 100)

Sheet 2 - product id - total company sales quantity
                 product id2 - total company sales quantity                                                     product id3 - total company sales quantity
                 Etc etc (Currently over 34000 and growing...)

Sheet 3 -     cat1 cat2 cat3 cat4 cat5 cat6 etc (to cat400) 
  Product id    1       0      1      1      0       0     
Product id2    0       1      1       0     1       0  
Product id3     1      0      1      1      0       0 

我希望能够从客户列表中找到畅销书,在cat参考表中查找该产品的所有匹配类别,查找与这些类别完全匹配的所有结果并按列表列出公司总销售额。虽然很可能在可能的类别数量上没有精确的马赫,所以我希望得到最接近的产品......

这有意义吗?请告诉我是否需要更多信息来帮助 - 即使只是一个指向某种功能的指针或一段代码将帮助我在路上将不胜感激,我只是不知道如何找到一个匹配的整行的价值......如果没有精确的话,甚至更少了解如何找到最接近的匹配......

1 个答案:

答案 0 :(得分:1)

有趣的问题。没有匹配功能来实现你想要的。相反,您需要首先弄清楚要使用哪种算法/逻辑来确定最近的书籍。这将需要大量称重。这是我如何做到的(没有VBA):

让我们使用以下数据作为示例:

enter image description here

方法:

  1. 将产品信息与整体销售信息相结合,以获得每本书的权重:enter image description here
  2. 确定sheet1中客户购物篮的“平均偏好”。为此:
    • 将400个类别的类别信息添加到购物篮中的每个产品:enter image description here
      1. 总结所有篮子产品的每个类别(见上文第6行)
      2. 确定称重(见第7行)。
  3. 将此首选项应用于所有产品以确定整体适合度:
    1. 将每个产品的类别与首选项进行比较:enter image description here
    2. 检查产品是否已经在购物篮中:enter image description here
    3. 结合所有三个因素来确定每个产品的适合度(通过乘以因子) - 并使用RANK函数对它们进行排名:enter image description here
  4. 最后但并非最不重要的是,使用查找检索前X个最高匹配:enter image description here
  5. 这是sample file