Excel随机金额或数字分配方法

场景问题:

excel a列 有118行数据写的公司名,b列想要对应写上金额,金额是不均匀的,总额10亿,有什么快速办法吗?

操作步骤:

  1. 准备数据 :假设您的公司名在 A2:A119 (共118行)。我们将金额生成在 B2:B119

  2. 生成随机基数 :在 C2 单元格输入公式,并向下拖动填充至 C119

    excel

    复制代码
    =RAND()

    这个公式会生成一堆介于 0 到 1 之间的随机小数。注意: 每次计算工作表(比如输入内容、删除行等)这些数字都会变化,这是正常的。

  3. 计算分配金额 :这是最关键的一步。在 B2 单元格输入以下公式,然后拖动填充至 B119

    excel

    复制代码
    =ROUND($F$1 * (C2 / SUM($C$2:$C$119)), 2)

    公式解释:

    • $F$1: 这是你总额 1,000,000,000 所在的单元格。请将其替换为你实际存放总额的单元格地址 (例如,如果你把10亿写在 F1 单元格,就像公式里这样;如果你写在别处,比如 Z100,就改成 $Z$100)。$ 符号用于锁定这个单元格,拖动公式时地址不会变。

    • C2: 当前行的随机基数。

    • SUM($C$2:$C$119): 所有随机基数的总和。

    • (C2 / SUM(...)): 计算当前行的随机基数占总基数的比例

    • $F$1 * (...): 用总额乘以这个比例,得到该行应分的金额。

    • ROUND(..., 2): 将金额四舍五入到分(保留两位小数),因为金额通常不需要太多小数位。

  4. 处理舍入误差(重要!)

    由于四舍五入,B列 的总和可能不正好是10亿,会有几块钱的误差。我们需要修正最后一项来补齐这个误差。

    • 在任何一个空单元格(比如 E1)计算当前总和:=SUM(B2:B119)

    • 计算误差:=F1 - E1 (即:目标总额 - 当前总和)

    • 手动调整最后一家公司的金额 :找到 B119 单元格,将其公式删除,直接输入数值:=B119 + (F1 - SUM(B2:B118))

      • 这个公式的意思是:最后一家公司的金额 = 它原来的金额 + (总额 - 其他所有公司金额之和)。这样就确保了总和绝对精确。
  5. 将随机数固定为数值

    完成后,由于 RAND() 函数会随时变化,我们需要将B列的结果固定下来。

    • 选中 B2:B119 区域,按 Ctrl + C 复制。

    • 右键点击 B2 单元格,选择 "选择性粘贴" (Paste Special) -> "值" (Values) -> 确定

    • 现在可以删除 C列 的辅助列了。

相关推荐
破z晓3 小时前
javascript 导出excel表
开发语言·javascript·excel
Am-Chestnuts8 小时前
豆包多轮回答中的表格导出 Excel:编号、日期与长数字检查
excel
hPw0eKIqD21 小时前
使用二次封装的Excel COM 组件操作Excel\WPS ET中的区域、行和列
excel·wps
冰心孤城1 天前
Excel: xls与xlsx格式转换排坑指南
java·前端·excel
金豆呀1 天前
WPS批量提取Word文档内容生成固定格式Excel表格
word·excel·wps
Access开发易登软件1 天前
Access 怎么做前后端分离?用 Web API 读写 SQL Server
前端·数据库·人工智能·microsoft·excel·access
红莲凪是2 天前
使用二次封装的Excel COM 组件操作Excel\WPS ET IExcelRange 高级应用
python·excel·wps
用户298698530142 天前
如何使用免费工具在线将 Excel 转换为 XML 格式
人工智能·后端·excel
开开心心就好2 天前
内存清理工具定时自动清理开机自启动
java·开发语言·elasticsearch·ocr·excel·音视频·big data
开开心心就好2 天前
电脑内存优化工具一键释放内存超简单
java·开发语言·macos·arcgis·ocr·excel·音视频