我有12个工作表中包含的未知数量的条目(行)(每月1个)。这些行跟踪传递数据。我想解析每张表格的每一行并执行以下操作:
计算从A到B的交货数量。 计算从A到B的件数。 计算从A到B的交货成本。 计算从A到B的总货物重量。
需要将这些标记输出到摘要工作表,并且需要同时为月度和年初。
示例列和单个数据行如下:
Date&Time PU | Date&Time Del |PU Loc. Name |PU Street |PUCityStateZip |DEL Loc. Name|DEL Street |DELCityStateZip |Number of Pieces|Weight |TotalAmt
01/01/2016 05:30 | 01/01/2016 07:30 | Warehouse A | 123 Nowhere St. | Toronto, ON P3L 3M0 | Hospital A | 321 Made-up Ave. | Stratford, ON T45 6H8 | 6 | 240 Lbs | $245.00
02/01/2016 06:30 | 02/01/2016 07:30 | Warehouse B | 123 Lost Road | Hamilton, ON P3X 3Z0| Hospital A | 321 Made-up Ave. | Stratford, ON T4P 6H8 | 3 | 240 Lbs | $245.00
01/01/2016 09:30 | 02/01/2016 11:30 | Warehouse A | 123 Nowhere St. | Toronto, ON P3L 3M0 | Hospital B | 123 Boul Fake. | Montreal, QC T4Y 6J8 | 1 | 24 Lbs | $45.00
04/01/2016 05:30 | 04/01/2016 07:30 | Warehouse A | 123 Nowhere St. | Toronto, ON P3L 3M0 | Hospital A | 321 Made-up Ave. | Stratford, ON T4P 6H8 | 4 | 160 Lbs | $145.00
Using the sample data above we would have(for total number of deliveries):
2 Deliveries from Warehouse A to Hospital A
1 Delivery from Warehouse B to Hospital A
1 Delivery from Warehouse A to Hospital B
我知道如何循环浏览不同的工作表。我也知道如何以未知的行数循环到最后一行的末尾。
我不知道对数据进行分类并比较提货和送货地点的最佳方式。即。我需要能够查看数据,以确定仓库A在1月份送达医院B 7次,2月送15次...... 12月送10次等等。我没有完成此操作的代码,在这一点上,因为我有问题可视化如何最好地解决这个问题。
这必须是VBA解决方案 - 我可以在很久以前用手完成这项工作,但我想要一个"自动化" VBA解决方案。
感谢任何帮助。
答案 0 :(得分:1)
您可以使用以下SQL语句打开记录集:
SELECT Year([Date&Time Del]), Month([Date&Time Del]), [PU Loc. Name], [DEL Loc. Name]
COUNT(*) AS CountOfDeliveries
FROM [SheetName$]
GROUP BY Year([Date&Time Del]), Month([Date&Time Del]), [PU Loc. Name], [DEL Loc. Name]
并使用CopyRecordset
将结果粘贴到输出工作表中。
如果您想按年份而不是按月分组(问题不是很清楚),请使用以下SQL语句:
SELECT Year([Date&Time Del]), [PU Loc. Name], [DEL Loc. Name]
COUNT(*) AS CountOfDeliveries
FROM [SheetName$]
GROUP BY Year([Date&Time Del]), [PU Loc. Name], [DEL Loc. Name]
有关类似内容,请参阅here。