铝合金窗的成本
文章目录:
1、3秒完成一天工作,先进先出算成本的Excel公式不收藏太可惜了2、VBA应用案例:用VBA模块计算课时费(基于Access数据库)3、设备维护保养管理,Excel vba表格
3秒完成一天工作,先进先出算成本的Excel公式不收藏太可惜了
先进先出法是进销存管理中很重要的成本计算方法。
如下图所示在销售表中根据出库数量计算成本金额。
先跟过儿一起了解先进先出的计算原理。
先进先出:就是在计算成本价格的时候优先计算先入库的产品成本,假设先入库的产品先出库。
【例】如下图所示,A产品总共入库了3个批次,每次进货的价格都不同。
情形一,A产品第一次销售20个,因为A的第1批进了50个,在先进先出法下就可以假设20个产品都是从该批次进货的,所以全部按该批次的价格算成本,成本应为:
=20*2=40
情形二,A产品第一次销售51个,那么第一批进的不够用,所以要从第二批拿出一个算成本。成本总额为:
50*2+1*4=104
情形三:A产品第一次销售70个,前两批进货的数量都不够用,所以得从第三批中拿出10个算成本。
=50*2+10*4+10*9=230
情形4:A产品后续又销售了5个,因为前面已把前2批货卖完了,所以现在直接从第3批(价格为9)的批次中拿货并计算成本。
=5*9=45
以后再销售的成本以此类推。
如果没有从事过财务,那么可能觉得有点费解。这个公式不但要考虑入库表的所有批次价格,而且还要考虑销售表已卖的数量。如此复杂的计算,几乎不可能用excel函数来做到,但是人工又很麻烦,即使一百行的小表人工也得半天。
为了解决这个,用VBA编写了一个自定义函数。完美解决了先进先出算成本的难题。下面带大家演示
=成本(H2,H$1:H2,I$1:I2,J$1:J1,B$2:B$18,C$2:C$18,D$2:D$18)
语法:
成本(商品名称,商品区域,销量区域,已计算成本区域,入库表商品名称,入库表数量区域,入库表单价区域)
参数说明:
下面按照步骤提示在自己的表格中设置先进先出的公式
第1步 复制下面代码
Function 成本(商品, 已销商品rg As Range, 已销售数量rg As Range, 已成本rg, 商品rg As Range, 入库数量rg As Range, 单价rg As Range)Dim 入总, 总数量, 总成本, 销售数量 As Integer, 已计算销售成本arr1 = 商品rgarr2 = 入库数量rgarr3 = 单价rgarr4 = 已销商品rgarr5 = 已销售数量rgarr6 = 已成本rgFor M = 1 To UBound(arr4) If arr4(M, 1) = 商品 Then 销售数量 = 销售数量 + arr5(M, 1) If M < UBound(arr4) Then 已计算销售成本 = 已计算销售成本 + arr6(M, 1) End IfNext MFor x = 1 To UBound(arr1) If 商品 = arr1(x, 1) Then '入总 = 入总 + arr2(x, 1) If 总数量 < 销售数量 Then If 总数量 + arr2(x, 1) < 销售数量 Then 总成本 = 总成本 + arr2(x, 1) * arr3(x, 1) Else 总成本 = 总成本 + (销售数量 - 总数量) * arr3(x, 1) End If End If 总数量 = 总数量 + arr2(x, 1) End If Next x If 总数量 < 销售数量 Then 成本 = "销量大于库存数量,请核查" Else 成本 = 总成本 - 已计算销售成本 End IfEnd Function
第2步 打开你的Excel表格,然后通过开发工具-Visual basic打开VBA编辑器,在左边右键-插入 -模块,然后把代码粘到右侧的空白区域里。最后把文件另存为:xlsm启用宏的excel工作簿类型。
以后,在这个excel文件里就可以直接使用“成本”函数来计算先进先出成本了。
总结:解决先进先出是excel中很难的一个设置,以前有同学问我excel中有没有先进先出的公式,我都会说没有,今天用VBA自定义设置了一个。
VBA应用案例:用VBA模块计算课时费(基于Access数据库)
这篇技术文章我们讲一下:怎么用VBA模块计算一些稍微复杂的表。
(今天发的的几个短视频段子,播放量团灭,很难过。还是讲技术吧)
用AccessVBA模块来对表进行计算,相当于用Excel的函数来计算,二者在本质上没有区别。了解Excel函数的人能够理解我在讲什么。
用Access数据库计算的效果
和Excel函数相比,用VBA模块对表进行计算有利有弊:
优点是:
1.计算能力强。用Excel计算两三个字段就比较吃力了,在Excel单元格里写代码,会导致单元格比较臃肿。而Access的VBA模块在这方面能力强一些。
2.调整容易。用VBA模块计算,便于函数的维护和拓展,计算过程清楚不容易乱。接下来会用案例来解释这个问题
Access数据库VBA模块
用VBA模块计算也有缺点:
1.学习成本高。得了解什么叫变量,Function怎么用。编程就没有轻松的,会有一些坑。
2.会被鄙视。搞编程的码农会鄙视你,说你用VBA很low,搞得你很烦。(很奇怪,按这个原理,搞Excel函数不是更“low”吗?)
下面讲一下这个案例:
一、本案例的需求介绍
这个案例是一所高中的真实案例:以周为单位,计算每名老师的课时费。
这个工作用Excel完成有些麻烦(但不是不行),主要计算需求如下(为了循序渐进的教学,进行了适当的简化):
1.该学校的教课老师有100多名,有6个学科:
语文
数学
英语
物理
化学
生物
2.每周20小时内,语文数学英语100元小时,物理化学生物80元1小时
3.每周超过20小时,所有科目都是200元每小时。
在实际的案例中,每个老师教的班级还有快慢之分,给快班讲课的补助价格更高一些。但为了讲解方便,我今天先省略这个需求。
二、表设计思路
1.必须设计成一维表形式
用Excel也可以这个计算,用函数就可以。
但是表的设计必须遵循一维表的形式,无论是Excel还是Access的表都必须遵循这个原则,不然设计容易乱。
尤其是Excel设计更容易乱。
2.表的字段要严格控制
这个表的字段一共就4个:
时间
老师
科目
课时
用Access来设计表的话,字段里不需要设计价格、没有星期。价格在VBA里体现,星期用查询(SQL)自动生成。
这就是Access框架的威力,Excel就很难做的这么清爽简约。据我所知,Excel做星期查询很难。
3.表的更新
这个计算做成之后,只要定期往表里更新数据就行,老师上一天课就更新一条,更新完之后,计算结果就自动生成了,报表也能自动化生成。
三、查询设计
简单来说,这个课时费计算的Access查询需要两步:
1.生成周查询表
2.在周查询基础上,加上计算字段,计算字段运用的是VBA的模块(VBA模块是本文的核心)
先要解释一下为什么要两次查询,因为这个需求的时间范围是按周汇总,如果一次查询完成计算的话,SQL会乱。
1.生成周查询
这个技术我之前做过,代码界面如下:
第一次查询
2.计算字段
计算字段包括5个
一类课时量
二类课时量
一类课时费
二类课时费
总课时费
第二次查询
一类课时就是每周20节以内的课时,二类课时就是每周超过20节的课时。
四、VBA模块设计
下面是我们本文的核心,VBA模块设计。本需求我采用的是一个模块,下面四个函数,四个函数共用两个变量就可以。
其实VBA模块一点都不神秘,核心就是设计方程、解方程:
y=f(x1,x2)
再详细一点,y=Function(x1,x2)
这个Function英语就是方程(也叫函数)的意思,也就是VBA模块里我们要设计的一种计算方法,原理没什么难的。
比如,我们设计一个函数
x1=2
x2=2
y=f(x1,x2)=(x1+x2)^2
x1和x2相加再平方这个过程,就是一个函数(Function)计算。
Excel里要计算的话,就是直接新起个单元格,单元格里输入:
=(A1+B1)^2
用Excel来计算这个计算课时费需求也完全可以,但是如前所述,Excel很难计算复杂情况,比如我们本次需求就不这么简单,至少有两个判断:
1.判断这个老师教的是什么课,数学外语语文的课时费就高一些。
2.判断这个老师这周上没上够20节,上够是一个钱、没上够是一个钱。
用Excel来算就显得不那么简单了。
更何况这个需求,比我实际交给客户的需求还简化的多:客户要求的需求还有不同班级的不同费用,等于多了一个维度的计算。用Excel做就非常吃力了(这也是为什么客户找到我)。
我们这个需求的VBA代码有5个函数(Function),分别对应上个章节的5个计算字段
模块有两个总的变量,一个是每周的总课时(通过第一次查询计算得到的),第二个是科目。
两个变量
每个函数用方程表示就是
一类课时费=f(每周总课时,科目)
二类课时费=f(每周总课时,科目)
以此类推
VBA模块总界面
五、VBA代码设计
每个函数的代码设计,我承认对初学者有点难,但是学了一会就会觉得也不过如此,基本就是If Else语句判断。
我们以一类课时量为例
分为以下两种情况
1.当周上课没到20节
一类课时量=f(每周总课时)=当周课时
2.当周上课超过20节
一类课时量就是20节。
第一档课时数
二类课时量也分两种情况
1.当周上课没到20节,那么:
二类课时量=0
2.当周上课超过20节
二类课时量就是:周课时量-20
第二档课时数
(看懂了吗?没看懂公屏+1)
因为课时量不受科目的计算,所以方程里没有科目。如果计算课时费的话,就要加上科目,计算稍微复杂一些。
一类课时费:
1. 没到20节
数学语文外语
一类课时费=当周课时量*100
其他科目
一类课时费=当周课时量*80
第一档课时费
2.超过20节
数学语文外语
一类课时费=20*100
其他科目
一类课时费=20*80
逻辑就是这样,二类课时费、总课时费的VBA,大家照猫画虎做一下。
六、做报表
最好查询之后,就是界面的设计和美化了。这方面技术我讲的很多。不做赘述。
我建议用报表的形式,方便又快捷、简约又大方。
总体效果
有问题就在评论区交流哈~想学习、想领取这个案例给我留言哈~
设备维护保养管理,Excel vba表格
-1-
设备维护和保养在生产过程中,是一个动态不间断工作,需要保证正常运行的情况下,进行维护保养工作,目的也是使运行设备可以长期稳定工作。减少设备损坏率,避免因设备损坏而造成的经济损失。
如果维护及时,得当的情况下,明显可以达到良好的效果。
一个简单流程来说明一下,如何做好设备维护记录工作,并且提醒下次维护日期。
首先要做一个设备维护表格,包含了很多项目,如维护日期、设备名称、设备代码、单元、维护内容、维护方法、维护人、维护结果、维护周期(小时)、遗留问题、设备管理人、确认人、下次维护时间等。
-2-
设备维护是个技术活,需要娴熟的技术来进行操作,这样做的目的可以既减少维护工作时间,也提高了维护效果。
生产过程中不应该忽略维护的重要性,严格按照设备维护标准来进行,可以使一台设备在设计的生命周期内安全无事故运行到淘汰。
如果,不能正确地按照维护操作方法来进行,可能损伤到设备,减少使用寿命,如此便间接造成生产成本提高,资金损失。
图表显示了此设备维护次数。
维护次数增加也说明这台设备已经处于一种带病状态,得以加强管理。
-3-
管理界面四个选项:维护记录、记录查询、下次维护日期和维护统计。
设备管理是个大项目,其中还有一些更加细致内容,所以这个维护方面的内容,也没有细细说明。
使用过程中,可以随意添加。
至于,生产运行中,由于设备众多造成,维护不及时,维护不到位的情况,时有发生。
这种情况不是维护过程不明确,就是维护计划不清楚,甚至就没有所谓的维护计划。
-4-
许多工厂,由于生产成本提高,人力成本提高,工厂处于一种散漫的状态。
这也在所难免,毕竟没有高的工资激励,很多人是不愿意进工厂工作的。
还不如送外卖,有统计今年的外卖员增加了200万人,而工厂却招不工人。
由于大环境的情况,工厂真的是不太理想,工资不高,工作时间长,工作环境也差,这种事实下,倒不如去送外卖,工作时间自由近排,只要身体好,勤快多跑腿,工资还是相当可观的。
不过从长远的社会发展来看,劳动密集性并不是一定具有决定性推动社会进步的产业。
技术为王,只有不断增强核心技术,才能在解放劳动力的路上不断向前。
-5-
其实,人的劳动,在大多情况下是一个被迫的行为。
只有出于自愿性质的劳动才具有创造性。
所以,不愿意到工作厂劳动,更不愿意用被迫加班,来换取低廉的工资是这个社会阶段出现的病。
设备管理当中,一旦管理员发出维护清单,那么就需要维护人员去进行操作。
这个过程,除了一定的技术以外,大多也掺杂了被迫的情绪。
因为,也算是重复性劳动吧!
一些技术熟练的工人,可以在10分钟之内完成。
而一些生疏的工人,大概要数倍的时间。
但是工资方面,并不能得以区分和体现优劣。
所以,某些方面来说,维护工作也脏乱差活。维护结束之后,带着满身污渍。
管理方面其实考虑到这些细节,也能够帮助员工怎么工作更加轻松地完成工作任务。
欢迎关注:江觅头条
有时候,透过代码也可观察社会百态