1234

ExcelHome技术论坛

用户名  找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

帖子
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 23168|回复: 34

[原创] 1个简单的多层BOM材料计划需求量计算应用

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2014-9-5 14:50 | 显示全部楼层 |阅读模式
在VBA版块,有人求助单层BOM的材料计划每日需求量计算的代码。
http://club.excelhome.net/thread-1149822-6-1.html

在EXCEL VBA代码解决的同时,我想到了可以用Access数据库轻松解决。

同时,扩展到多层BOM (我做了4层的例子)也很容易。

因为和生产计划有关,所以转发附件到这里,希望有兴趣的朋友关心。


EDP-4.zip

195.38 KB, 下载次数: 3149

TA的精华主题

TA的得分主题

发表于 2014-9-5 16:06 | 显示全部楼层
单位电脑没有装Access,回家学习一下,多谢分享

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-9-5 18:57 | 显示全部楼层
改一下文件标题,另外产品数据表中添加了子数据表,便于查看对应材料的子构成情况

多层BOM展开计算.rar

22.74 KB, 下载次数: 1934

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-9-5 19:19 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
Access数据库 说明:

一、 基本数据表:
1. 【BOM】
产品名、材料名、基础量、层数

其中,产品对应的直接材料层数为 = 1
如果该材料由其它子材料构成(相当于某个部件总成),则其对应子材料层数=2
…………以此类推,目前最大到第4层


2. 【行序号】
按材料分解表的输出最大行数设置。
第1列为按顺序输入的行序号、对应第2列写明要显示的指定材料名称。
如不需要显示,则该行对应材料名留空

3.【日期序列】
1-31日、需要排计划的当月日期
每月初执行【计划日期更新】查询即可更新日期

4.【日程计划】
按生产计划、输入日期、产品名、数量

这样就基本够了。

5. 【产品】清单
可以执行【添加产品名】由BOM表数据进行自动添加,但仅限于第1层中的产品名称。层数>1的材料部件总成不能添加

在【产品】清单中,打开+号能查看该产品的BOM构成子部件、并能逐级向下展开。


6. 【材料】清单
也可以执行【添加材料名】由BOM表数据进行自动添加。

在【材料】清单中,打开+号能查看该材料的逆向展开(即使用到该材料的所有上一级材料或产品)、但不能向上追溯、只能向下回溯。


7. 【MRP】
根据【日程计划】中的数据、按【BOM】表中的需要量展开计算得到【每天、各层级材料】的总合计需求量。
(当前最大层数为4级)

本表由执行宏【按多层BOM展开后各材料用量合并至MRP】之后产生,
如不执行宏则数据是旧的,不能用。


………………
二、查询表
1. 【计划日期更新】
每月初执行一次,更新1-31个日期为当前月的实际日期

2. 【全日程计划】
【日期序列】 + 【日程计划】得到每一天的列表
目的:即使某一天没有生产计划、也会保留这1天表示的列。 否则就会缺日期

3. 【全日程计划展开】
按照【全日程计划】 + 【BOM】 + 【行序号】合并信息并计算使用量。

4. 【全日程计划展开集计】
把【全日程计划展开】中的数据,
按照行(行序号和材料名)、列(完整的计划日期)、数(每日使用量合计)进行展开集计。

5. 【每日物料需求 指定材料_全显示(全日程展开集计+行序号)】
按照【行序号】对照【全日程计划展开集计】进行不足行的补充、以及非指定材料的剔除。

这样就得到了:
按照【行序号】表中指定材料名称,对应整个生产计划周期内(日期序列)的所有材料的使用量计算结果。


6. 【每日物料需求_材料全部_精简显示(日程计划+BOM)】
仅根据【日程计划】和【BOM】计算所有材料的实际需求量,
并仅按照实际有生产计划的日期列进行简略输出。

…………
7. 【添加材料名】
根据【BOM】向【材料】表中补充添加

8. 【添加产品名】
根据【BOM】向【产品】表中补充添加

…………
注意:以上 2、3、4、5、6只能计算一级BOM的直接使用材料情况。


TA的精华主题

TA的得分主题

 楼主| 发表于 2014-9-5 19:27 | 显示全部楼层
以下为对各层级进行展开计算的查询表:
1. 对各层级BOM的展开计算。
【MRP-1】、【MRP-2】、【MRP-3】、【MRP-4】

其中,每一子层级是根据上一层级的计算结果得到的。所以不能缺少。


2. 把各层级BOM的展开计算结果添加到【MRP】表中。
【ADD MRP-1】、【ADD MRP-2】、【ADD MRP-3】、【ADD MRP-4】

其中,【ADD MRP-1】是生成表查询,而其它的只是添加表查询。有所不同。


把以上 【ADD MRP-1】、【ADD MRP-2】、【ADD MRP-3】、【ADD MRP-4】合并一起执行,
就产生了执行宏【按多层BOM展开后各材料用量合并至MRP】

该宏执行以后,就能更新【MRP】表数据,
并根据【MRP】生成【全日程MRP展开】以及【全日程MRP行展开】


以上。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2014-9-5 20:52 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2014-9-5 22:22 | 显示全部楼层
给32个赞先,一直想做却没做的事情

TA的精华主题

TA的得分主题

发表于 2014-9-6 22:58 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2014-9-9 21:03 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2014-9-9 23:00 | 显示全部楼层
1.不用代码做BOM拆解还是值到顶的
2.手工操作太过麻烦,可以试着用宏批量来处理会更好些
3.BOM的结构和计算可以做为一个思考的示例,但在应用上,还是有些不足,
4.产品和材料两个表是否可以合在一起呢?
5.对于宏的应用,你有没有试过嵌套宏?其实你可以做到不限层次的计算(当然会设一个上限,防止死循环的问题),这里就可以用到这个嵌套回调的方式,达到循环递归,呵。。有兴趣可以思考一下哦
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

1234

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-3-29 17:53 , Processed in 0.025734 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表