ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] MACRO 自动平均分配工作

[复制链接]

TA的精华主题

TA的得分主题

发表于 2014-8-14 11:18 | 显示全部楼层 |阅读模式
各位大神,有个很难的macro问题只有在这里可以请教大家了,请先查看附件,

背景如下:部门一共有3个同事,附件为每月所有分公司的发票统计汇总,现在想要通过macro自动对所有收到的发票进行平均分配,分给3个人,使3个人的工作量能够均衡。

重点是:1.工作量的衡量是基于E列和F列的组合,例如:单元格E8=E9,同时单元格F8=F9,那第8行和第9行就算一笔业务。
              2.同一个分公司的业务一定要分配给同一个人。

希望macro可以自动计算出一共有几笔交易,然后进行自动分配与规划。

知道可能很复杂,希望大神们可以帮忙!!!!!!!谢谢!!!!!
举例.rar (14.83 KB, 下载次数: 22)

TA的精华主题

TA的得分主题

发表于 2014-8-14 12:19 | 显示全部楼层
关键是得制定并理解透规则,转化成vba算法倒是其次的问题。。。。。。

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-8-14 12:55 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
amesman 发表于 2014-8-14 12:19
关键是得制定并理解透规则,转化成vba算法倒是其次的问题。。。。。。

可是规则就是我上面列的2条呢,3个人平均分配,同一分公司只能分给一个人。没有别的很复杂的规则了。

TA的精华主题

TA的得分主题

发表于 2014-8-14 14:42 | 显示全部楼层
那就先按公司分类,然后按交易量排序,
接着按以下顺序分配……

123321
231132
312213

分配完成后呢,统计一下结果,如果差不多就结束。
否则就随机交换一下。交换n次以后就应该可以了。(由电脑交换速度很快的。)




TA的精华主题

TA的得分主题

发表于 2014-8-14 14:46 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
分类是按分公司、还是按客户代码?

注意,楼主标题栏用了合并单元格!

一般表格建议不用合并单元格。 合并单元格仅用于打印输出用报表以便美观。
其它情况一律不要用!!这是基本习惯。必须注意。

TA的精华主题

TA的得分主题

发表于 2014-8-14 14:52 | 显示全部楼层
该根据哪一项来分类呢?

楼主举例都不会呀!
Pic.jpg

TA的精华主题

TA的得分主题

发表于 2014-8-14 14:56 | 显示全部楼层
本帖最后由 香川群子 于 2014-8-14 15:00 编辑

如果按分公司来分类,则只有一种组合符合要求:

1+2+2=5|1+4=5|2+3=5 <OK>

3人每人分到5笔业务。呵呵。


具体明细:
FormulaAddress
+4+1A1+A4
+3+2A6+A2
+2+2+1A5+A3+A7

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-8-14 15:45 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
香川群子 发表于 2014-8-14 14:56
如果按分公司来分类,则只有一种组合符合要求:

1+2+2=5|1+4=5|2+3=5

您好!是按照客户代码分类的呢,但是如果编号和客户代码都相同的话,只能算1单。

至于分公司,是基于客户代码分类后的要求,即同一分公司必须给一个人做。

您下面的写法我懂,但是问题是实际我可能会收到来自30家分公司的1000张发票,我应该怎么写macro代码来让它操作呢,不可能先手动分好再写代码呢。

TA的精华主题

TA的得分主题

发表于 2014-8-14 16:21 | 显示全部楼层
robinzzy 发表于 2014-8-14 15:45
您好!是按照客户代码分类的呢,但是如果编号和客户代码都相同的话,只能算1单。

至于分公司,是基于客 ...

上一下1000单的附件。

把公司名称替换为Company01、Company02……或公司-1、公司-2
其余编号、客户代码、发票号尽量保持原样。

TA的精华主题

TA的得分主题

发表于 2014-8-14 16:27 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
排序,编号和客户代码相同的只统计1次,然后按公司不同分类统计总票数。

把按公司分类后得到的总票数,根据业务员人数(假设是3人)进行分配。

也就是说结果分成3组,每一组的总和尽量接近。



您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-15 07:46 , Processed in 0.048300 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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