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

Excel中使用INDEX函数实现平局随机打破(羞耻计数器场景)

解决Excel中平局时随机选取最大值对应人员的问题

嘿,这个羞耻计数器的玩法挺有意思!原来的规则是平局选最上方的人,现在要改成随机选,用INDEX函数完全可以实现,我给你两种方案,适配不同版本的Excel:

方案1:适配所有Excel版本(含旧版)

假设你的员工名字在A列(比如A2:A10),羞耻值在B列(B2:B10),可以用这个数组公式:

=INDEX(A:A,SMALL(IF(B2:B10=MAX(B2:B10),ROW(B2:B10)),RANDBETWEEN(1,COUNTIF(B2:B10,MAX(B2:B10)))))

注意:旧版Excel(2019及以前)输入完公式后需要按 Ctrl+Shift+Enter 确认,新版Excel(365/2021)直接回车就行。

公式拆解:

  • MAX(B2:B10):先拿到当前周的最高羞耻值
  • IF(B2:B10=MAX(B2:B10),ROW(B2:B10)):生成一个数组,只保留羞耻值等于最大值的员工行号,其他为错误值
  • COUNTIF(B2:B10,MAX(B2:B10)):统计有多少个员工拿到了最高羞耻值
  • RANDBETWEEN(1,COUNTIF(...)):随机生成1到最大值人数之间的整数,用来选第几个符合条件的员工
  • SMALL(...,RANDBETWEEN(...)):从符合条件的行号里取出第N个行号
  • INDEX(A:A,...):根据行号取出对应的员工名字

方案2:新版Excel简化版(365/2021)

如果用的是支持动态数组的Excel,用FILTER函数会更直观:

=INDEX(FILTER(A2:A10,B2:B10=MAX(B2:B10)),RANDBETWEEN(1,ROWS(FILTER(A2:A10,B2:B10=MAX(B2:B10)))))

逻辑更简单:

  1. FILTER(A2:A10,B2:B10=MAX(B2:B10)):直接筛选出所有拿到最高羞耻值的员工名字
  2. ROWS(FILTER(...)):统计筛选结果的行数(也就是最大值人数)
  3. RANDBETWEEN(1,ROWS(...)):随机选一个位置
  4. INDEX(...):从筛选结果里取出随机选中的名字

这样就能完美实现你要的「平局时随机判定」的需求啦,每次刷新表格(或者按F9)都会重新随机一次哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 09:21:35