You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Sheets中实现两个列表的随机均匀分配?

在Google Sheets中实现运动的均匀随机分配

完全可以实现,以下是具体方案,能保证5项运动以2、2、1的均匀分配比例随机分给3个人,避免出现某个人分到3-4项的极端情况:

步骤1:准备数据

  • 在A列(A2:A6)输入所有运动:打棒球、打板球、打网球、打高尔夫、打橄榄球
  • 在C列(C2:C4)输入所有人名:Tim、Steve、Max

步骤2:使用数组公式实现分配

在B2单元格输入以下公式,直接生成每个运动对应的分配结果:

=ARRAYFORMULA(
  LET(
    sports, A2:A6,
    people, C2:C4,
    total_sports, COUNTA(sports),
    total_people, COUNTA(people),
    base_num, FLOOR(total_sports / total_people),
    extra_num, MOD(total_sports, total_people),
    // 生成每人基础分配的人名列表(每人1项)
    base_list, FLATTEN(SEQUENCE(base_num, 1, 0, 0) + people),
    // 随机选出2个不同的人名,各加1项分配
    extra_list, INDEX(SORTBY(people, RANDARRAY(total_people)), SEQUENCE(extra_num)),
    // 合并列表并随机打乱顺序
    full_assignment, SORTBY(VSTACK(base_list, extra_list), RANDARRAY(total_sports)),
    // 关联运动和分配结果
    HSTACK(sports, full_assignment)
  )
)

公式说明

  • LET 函数用于定义变量,简化公式结构
  • base_num 是每人最少分配的运动数量(5÷3取整为1),extra_num 是剩余需要额外分配的数量(5%3=2)
  • base_list 生成每个人名重复1次的基础列表
  • extra_list 通过随机排序人名后选取前2个,确保额外名额分给不同的人
  • full_assignment 合并基础列表和额外列表后随机打乱,保证分配的随机性
  • HSTACK 将运动和对应的分配结果横向关联

每次刷新表格(按下F9键),分配结果会重新随机生成,但始终保持2、2、1的均匀比例,不会出现极端分配情况。

内容的提问来源于stack exchange,提问作者FlorianT.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 02:18:20