ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > 综合应用 > 如何设计一个近似的平均分配物品方案?

如何设计一个近似的平均分配物品方案?

作者:绿色风 分类: 时间:2022-08-18 浏览:130
楼主
wjc2090742
Q:如何设计一个近似的平均分配物品方案?要求物品尽量平均的分配到每个人,每人直接的差距不超过1,且分配物品为整数,如何实现?
A:函数法:
在C1输入物品的总数量,C2输入进行分配的人数。G列为人员计数,H列为分配的物品数。
G2公式下拉:
  1. =IF(ROW(A1)>$C$2,"",ROW(A1))
H2公式下拉:
  1. =IF(G2="","",INT(($C$1-SUM(H$1:H1))/($C$2+1-ROW(A1))))
VBA法:
  1. Sub a()
  2.     Dim i As Integer, j As Integer, arr(), x As Integer
  3.     i = InputBox("请输入要分配的物品总数", "总数量")
  4.     j = InputBox("请输入人数", "人数")
  5.     ReDim arr(1 To j, 1 To 2)
  6.     For x = 1 To j
  7.         arr(x, 1) = x
  8.         arr(x, 2) = Int(i / j)
  9.         i = i - arr(x, 2)
  10.         j = j - 1
  11.     Next
  12.     Range("a:b").ClearContents
  13.     [a1:b1] = [{"人员","数量"}]
  14.     [a2].Resize(UBound(arr, 1), 2) = arr
  15. End Sub
如果要先出的数量较大,其中arr(x, 2) = Int(i / j)
可以改成arr(x, 2) = Int((i - 1) / j) + 1
平均分配.rar
2楼
战神一啸
一级棒的小胖哥!

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap