需求:基于A1值在B1-B5随机插入✓的Excel公式实现
实现Excel随机分配指定数量的"✓"到单元格区域
方法1:适用于Excel 365/2021(动态数组版本)
直接在B1单元格输入以下公式,公式会自动填充到B1-B5区域:=LET(n,$A$1,arr,SEQUENCE(5),rand,RANDBETWEEN(1^9,1^10+5),sorted,SORTBY(arr,rand),IF(ISNUMBER(XMATCH(arr,sorted,,-1,n)),"✓",""))
公式逻辑:
- 用
LET定义变量简化结构:n取A1的数值,arr生成1到5的序列对应B列的5个单元格 - 生成一组随机数打乱序列顺序,筛选出前
n个随机位置,匹配到当前单元格就显示"✓"
方法2:兼容旧版Excel(非动态数组)
在B1到B5的每个单元格都输入以下公式(旧版需按Ctrl+Shift+Enter作为数组公式输入,365直接回车即可):=IF(RANK(RANDBETWEEN(1,100),$B$1:$B$5)<=$A$1,"✓","")
公式逻辑:
- 每个单元格生成1-100的随机数,对B1-B5的随机数进行排名,排名在前
A1位的单元格显示"✓"
注意事项
- 以上公式用到的
RANDBETWEEN是易失函数,每次工作表计算(比如输入数据、按F9刷新)都会重新随机分配"✓"的位置 - 如果需要固定随机结果,生成后选中B1-B5区域,右键选择「复制」,再右键选择「粘贴为值」即可
内容的提问来源于stack exchange,提问作者Germz002
相关产品推荐
相关产品推荐

