在excel-vba中有一串string匹配难题

我正在编写一个程序在工作分类问题。 我以CODE,DESCRIPTION,SUB-TOTAL的forms获取数据,例如:

 LIQ013 COGNAC 25
 LIQ023伏特加21
 FD0001 PRETZELS 10
 PP0502 NAPKINS 5

现在一切都是这样的…问题是我的公司提供了许多不同的酒吧。 所以像这样的数据每个月有800个logging。 我的老板想分解数据,所以她知道我们每个月在某个类别上花了多less钱。 例如:

酒精46 
食物10
纸5

我想到的是我设置了一个“数据库”,这是一个真正的csv文本文件,其中包含这样的条目:

 LIQ,白兰地,酒精
 LIQ,伏特加酒,酒精
 FD,cookies,食品
 FD,爆米花,食品

我已经编写了将数据库作为工作表导入的代码,并将每个字段分隔到自己的列中。 我希望excel能够查看文件,以及何时看到LIQ和COGNAC为其分配ALCOHOL标识符。 这样我可以使用数据透视表来获得类别总和。 例如,我想要最终的产品看起来像这样:

 LIQ013 COGNAC 25酒精
 LIQ023伏特加酒21
 FD0001 PRETZELS 10食物
 PP0502 NAPKINS 5纸

有没有人有什么build议? 我担心的是,单点expression式匹配只是代码,即只是LIQ没有匹配COGNAC也可能会导致后来出现矛盾的描述时出现问题? 我还希望用户能够添加分类帐条目,以便识别的术语的数据库增长,变得更加广泛,希望更准确。

编辑

根据@Marc的请求,我包括我的解决scheme:


文件

请注意,这是一个非常愚蠢的解决scheme。 我删除了一些失败保险箱和其他一些代码相关的一个健壮的代码,但不是我们特定的解决scheme。

为了得到这个工作,有两个部分:

第一个是macros源代码,第二个是实际的文件

因为所有的故障保险箱都被删除了,所以需要将文件导入到出现的方式。 即googleDoc上的Sheet1应该是Excel中的Sheet1,在单元格“A1”处开始粘贴数据。 在macros运行之前,一定要在Sheet1中select单元格“A1”。 正如我所说,在成品中有实现,使其更加用户友好! 请享用!

EDIT2

这些链接吸。 他们不能很好地粘贴到excel中。 如果您对此感到满意,我可以通过电子邮件发送实际的工作簿。 这将有助于保存格式化等

在单独的工作表中使用查找表。 查找表的A列包含查找值(例如PRETZELS),列B包含类别(FOOD,ALCOHOL等)。 在希望类别显示在原始表单中的单元格中(让我们使用D3作为B3保存“PRETZELS”值的结果),请input以下公式:

 =VLOOKUP(B3,OtherSheet!$A$1:$B$500,2,FALSE) 

假定您的查找表位于名为“OtherSheet”的工作表的范围A1:B500中。

此公式告诉Excel在查找的列A中查找查找值(B3),并从查找表的列B返回相应的值。 绝对引用( $ )确保您的公式不会在其他单元格中复制/粘贴公式时增加单元格引用。

当您获得新的类别和/或库存时,只需向其中添加新行,就可以在此位置更新查找表。