1

我正在为分类问题编写一个程序。我以代码、描述、小计的形式获取数据,例如:

LIQ013 干邑 25
LIQ023 伏特加 21
FD0001 椒盐脆饼 10
PP0502 餐巾纸 5

现在这一切通常都遵循这样的......问题是我的公司提供了许多不同的酒吧。因此,每月大约有 800 条记录包含这样的数据。我的老板想要分解数据,以便她知道我们每个月在某个类别上的花费。例如:

酒精 46
食品 10
论文 5

我想到的是我设置了一种“数据库”,它实际上是一个包含如下条目的 csv 文本文件:

酒液、干邑白兰地、酒精
酒液、伏特加、酒精
FD、椒盐脆饼、食品
FD、爆米花、食品

我已经编写了将数据库作为工作表导入并将每个字段分成自己的列的代码。我希望 excel 浏览该文件,并在它看到 LIQ 和 COGNAC 时为其分配 ALCOHOL 指示符。这样我就可以使用数据透视表来获取类别总和。例如,我希望最终产品看起来像这样:

LIQ013 干邑白兰地 25 酒精
LIQ023 伏特加 21 酒精
FD0001 椒盐脆饼 10 食品
PP0502 餐巾纸 5 纸

有没有人有什么建议?我担心的是,单点表达式仅与代码匹配,即仅与 LIQ 匹配而与 COGNAC 不匹配,以后可能会在描述冲突时导致问题?我还希望用户能够添加分类帐条目,以便识别术语的数据库增长并变得更广泛,希望更准确。

编辑

根据@Marc 的要求,我包括我的解决方案:

代码
文件

请注意,这是一个相当愚蠢的解决方案。我删除了一堆与健壮代码相关但与我们的特定解决方案无关的故障保护和其他代码。

为了使它起作用,有两个部分:

第一个是宏源代码第二个是实际文件

因为所有的故障保险都被删除了,所以需要导入文件才能完全按照它出现的方式表现出来。即googleDoc上的Sheet1应该是excel上的Sheet1,开始在单元格“A1”处粘贴数据。在运行宏之前,请务必在 Sheet1 中选择单元格“A1”。正如我所说,成品中有一些实现使其更加用户友好!请享用!

编辑2

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

4

1 回答 1

2

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

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

这假设您的查找表在A1:B500名为“OtherSheet”的工作表的范围内。

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

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

于 2012-05-02T17:46:44.120 回答