【发布时间】:2012-05-12 05:30:45
【问题描述】:
我正在为一个分类问题编写程序。 我以 CODE、DESCRIPTION、SUB-TOTAL 的形式获取数据,例如:
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 纸有人有什么建议吗?我担心的是,单点表达式匹配 JUST 代码,即仅匹配 LIQ 而没有匹配 COGNAC 可能会在以后有冲突的描述时导致问题?我还希望用户能够添加分类帐条目,以便识别术语的数据库增长并变得更广泛,希望更准确。
编辑
根据@Marc 的要求,我将我的解决方案包括在内:
请注意,这是一个相当愚蠢的解决方案。我删除了一堆与健壮代码相关但与我们的特定解决方案无关的故障保护和其他代码。
为了让它工作,有两个部分:
首先是宏源代码 第二个是实际文件
因为所有的故障保险都被删除了,所以文件需要完全按照它的显示方式导入到excel中。即 googleDoc 上的 Sheet1 应该是 Excel 上的 Sheet1,开始在单元格“A1”处粘贴数据。在运行宏之前,请务必在 Sheet1 中选择单元格“A1”。正如我所说,成品中有一些实现使其更加用户友好!享受吧!
EDIT2
这些链接很糟糕。他们不能很好地粘贴到excel中。 如果您对它感到满意,我可以通过电子邮件将实际工作簿发送给您。这将有助于保留格式等。
【问题讨论】:
-
您查看过
SUMIF()函数吗?甚至是 Excel 的小计功能? -
@Marc 你看 SUMIF() 可以工作,但项目需要先按类别分开。
-
这看起来像是一个有趣的应用程序。
-
感谢@HeadofCatering 这个想法最终是让它成为半智能的。数据透视表当然可以自动生成。所以一旦排序完成并且数据库相当健壮,那么它应该能够获取原始数据,对其进行排序,对其进行分类,然后自动生成一个小计表。唯一的人工输入是当一个项目没有被数据库拾取时。
-
非常酷。如果您能够对主题进行抽样,那就更好了!
标签: sorting excel matching vba