MS Excel技术问询:如何生成和为目标值的随机5倍数单元格序列
解决方法
核心思路转化
因为要求每个数能被5整除,我们可以先把问题简化:生成100个正整数,让它们的总和等于 10000 ÷ 5 = 2000,之后每个数乘以5,就能得到符合要求的目标随机数。
具体操作步骤
方法一:快速生成法
- 在A1:A99单元格输入公式:
=RANDBETWEEN(1, 1901)- 这里的
1901是2000-99的结果,保证前99个数即使取最小值1,第100个数也能是正整数
- 这里的
- 在A100单元格输入公式:
=2000-SUM(A1:A99)- 这一步确保A1:A100的总和恰好为2000
- 在B1单元格输入
=A1*5,下拉填充到B100- 此时B1:B100的每个数都是5的倍数,总和正好是10000
方法二:更稳妥的动态调整法
如果担心前99个数取值过大导致第100个数为负数,可以用这种方式:
- 在A1:A100单元格输入
=RANDBETWEEN(1, 100)(范围可自行调整,只要是正整数即可) - 计算这100个数的总和,记为
S(比如在空白单元格输入=SUM(A1:A100)) - 在B1单元格输入
=ROUND(A1/S*2000, 0),下拉填充到B99 - 在B100单元格输入
=2000-SUM(B1:B99),确保B列总和为2000 - 在C1:C100输入
=B1*5,得到最终的目标随机数
补充说明
- 每次按
F9键会刷新所有随机数,若需要固定数值,选中目标区域后右键选择「复制」,再右键选择「粘贴为值」即可。 - 如果允许随机数包含0,只需把
RANDBETWEEN的下限改成0,同时调整总和计算的逻辑(比如把2000-99改成2000)。
内容的提问来源于stack exchange,提问作者delicatejolly
相关产品推荐
相关产品推荐

