ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 我又来提出新的要求了!

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-6-21 08:45 | 显示全部楼层 |阅读模式
本帖最后由 danhanqing 于 2024-6-21 11:46 编辑

在几位老师的指点下,试着完成了几个基本功能,但还是想更完美一点!自己试了好久,还是没实现。请大师们帮忙,万分感谢!

梦娜工作.rar (443.1 KB, 下载次数: 37)
具体核算要求,我写在了TXT里。
补充:核算要求第2条表达不完整,更正如下(附件已更新):

2、产值=“工时工价表“中工序名称对应的工价*产量*人数,其中如果产量是多单元格合并的,则表示是多人以工作组的方式完成,则需要先核算出总产值:工作小组中每个人对应的工序的工价*总产量之总和。个人产值就等于总产值/工作小组人数

谢谢!

TA的精华主题

TA的得分主题

发表于 2024-6-21 10:01 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
工作表1可以分为7个部分:第1行、2-8行(8行为空白行,其间隔作用?)、9-47行、48-54行(48行是空白行)、55-56行(55行是空白行),56行是合计行,57行是备注行。这7个部分的行数都是固定的吗?你这个帖子,要解决的是将9-47行中的公式取数改成VBA?

TA的精华主题

TA的得分主题

发表于 2024-6-21 10:04 | 显示全部楼层
10、sub写在模块中,供其他表调用。

这是准备在工作簿上加个菜单,还是加个按钮控件之类的?

TA的精华主题

TA的得分主题

发表于 2024-6-21 11:00 | 显示全部楼层
image.png 红框单元格的数值,也应该是338?

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-6-21 11:25 | 显示全部楼层
边缘码农 发表于 2024-6-21 10:04
10、sub写在模块中,供其他表调用。

这是准备在工作簿上加个菜单,还是加个按钮控件之类的?

每个工作表和备注那里增加一个刷新或核算按钮来call

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-6-21 11:33 | 显示全部楼层
边缘码农 发表于 2024-6-21 10:01
工作表1可以分为7个部分:第1行、2-8行(8行为空白行,其间隔作用?)、9-47行、48-54行(48行是空白行)、 ...

完全正确!

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-6-21 11:33 | 显示全部楼层
边缘码农 发表于 2024-6-21 11:00
红框单元格的数值,也应该是338?

应该是388/人数

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-6-21 11:38 | 显示全部楼层

您提醒我了!我的表达不完整:
当第23-26行是以工作小组来完成的总产量时,总的产值应该是每个人对应的工序工价*总产量之总合,
每个人的产值等于总产值/工作小组人数。
这样表达才是完整的。

TA的精华主题

TA的得分主题

发表于 2024-6-21 12:07 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

image.png

不太清楚这个地方为什么这样设置,这几列的数据没有标题。容易造成误解。

TA的精华主题

TA的得分主题

发表于 2024-6-21 12:44 | 显示全部楼层

聊一下规则问题:

第1条可以不用管。

第10条可以不用管。(这一条,建议用菜单的形式,而不是用按钮,用按钮,需要1-31工作表各加一个按钮,还是有些麻烦的。我看了下各个工作表中的代码,一旦要改就要改31次。对于多个工作表中执行的代码,用菜单的形式更好。工作表激活事件中也有代码,需要先了解这些代码是什么意思。解决此类实际问题的代码是最麻烦的,一个沟通不到位,就不能达到要求。)

第3条规则,需要干脆一点,要么有,要么没有。建议就是保存现状。

第7规则的优先级最高,工作内容指的是例如D13?

        7、如果工作内容为空,则表示没有上班,上述核算结果均为0

第8/9条规则规范产值的计算,可以和第2条合并。
        8、如果工作内容除了添加了“计时/”的外,不在“工序工价表”明细内的,在对应的产值单元格显示“工序错"
        9、如果姓名不在”人事总表“中,则在对应的产值单元格显示”人事错“

第8/9条判断完毕,且都没有错误,则执行第2条规则,但该条规则产值的描述和公式不一致。

=IF(LEFT(D10,2)="计时",IF(OR(B10="",D10="",G10=""),0,G10*_xlfn.XLOOKUP(B10&D10,工时工价表!A:A&工时工价表!B:B,工时工价表!D:D)/I10))

按照公式描述:如果是计时工序,则:产值=“人事总表”中的时薪*工时;否则:
                      如果款号、工序、产量三项任意一项为空,则:产值=空;否则:产值=产量*工价。

        2、产值=“工时工价表“中工序名称对应的工价*产量*人数,其中如果产量是多单元格合并的,则表示是多人以工作组的方式完成,则需要先核算出总产值:工作小组中每个人对应的工序的工价*总产量之总和。个人产值就等于总产值/工作小组人数

第4条规则:存在的问题和第2条规则类似。

        =IF(LEFT(D13,2)="计时",VLOOKUP(C13,人事总表!B:C,2,FALSE)*F13,IF(OR(C13="",F13=""),"",IF(IFNA(VLOOKUP(C13,人事总表!B:C,2,FALSE),"错误")="错误","人事错",IF(IFNA(_xlfn.XLOOKUP(B13&D13,工时工价表!A:A&工时工价表!B:B,工时工价表!D:D),"错误")="错误","工序错",VLOOKUP(C13,人事总表!B:C,2,FALSE)*F13))))

        4、工资:等于人事总表中该员工对应的时薪*工时
而且:第8-9条规则是在产值列中显示人事错、工序错,看公式,是在工资列中?

第5条规则:存在的问题和第2条规则类似。

=IF(OR(H14="",J14=""),"",MAX($H14:$J14))
产值列和工资列有一项为空,则为空,否则,取其最大值。

        5、实发:如果工作内容前面有“计时/”字样,工资就等于“人事总表”中该员工对应的时薪*工时;
                否则表示该员工是计件,工资就等于产值

第6条规则:存在的问题和第2条规则类似。

=IF(OR(H14="",J14=""),"",$H14-$J14)

        6、绩效:绩效=实发-工资

计时工序没有绩效?
另外,请假病假的实发列数据是怎么计算的?那个求和公式,是认真的吗?

现在的问题是:以公式为准,还是你描述的10条规则为准?

题外话:为什么用那么多的数组公式?
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-9-29 07:26 , Processed in 0.047986 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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