工作上遇到过做抽奖工具的情况,当时没思路,今天终于终于被我学到了
在我关注的公众号上面学到了一种思路,来简单说说
找了一些数据,模拟教程中的数据样式,排布如下
最右侧随机挑选下方的就是公式输出的结果

其实这个方法的思路就是利用index引用功能,将移动的行数和列数用randbetween函数代替,因为randbetween随即返回指定数字中的任意一个,所以结合index的引用,就可以随机返回一个结果
公式=INDEX(C2:I8,RANDBETWEEN(1,7),RANDBETWEEN(1,7))
C2:I8为数据区域
RANDBETWEEN(1,7)移动行数/列数,因为我们的数据是7行7列,所以RANDBETWEEN(1,7)的范围就是1-7
然后我们摁键盘上面的F9就可以刷新此结果,摁一次刷新一次,如果要自动刷新可以结合VBA来实现
然后我们来进阶一下,日常工作中我们录入信息很多,那就需要不算的改变我们引用的数据范围,如何让这个范围自动变化呢?
这里提供一个思路,用之前文章里面提到的新函数WRAPROWS
WRAPROWS是将一组数据矢量换行
效果如下

我将录入的信息排成一列,新增就在最下面新增
然后利用WRAPROWS函数将这些数据转换为上图右侧的矩阵
公式=WRAPROWS(A2:A50,7,"")
诶,到这里发现,依然是需要调整数据范围,怎么办呢,利用Excel的表工具,就是将我们的数据区域转为一个数据表,这样我们的公式=WRAPROWS(表1[姓名],7,""),其中,表1[姓名]表示的就是数据区域,我们在表的最下方增加新的数据,结果也会随着变化,可以理解为我们把这个数据区域定义了一个名称,不过不同的是她的范围是会变化的

这样解决了范围自动变化的问题,接下来就是将函数嵌套到一起,做我们的随机抽奖功能
=INDEX(WRAPROWS(表1[姓名],7,""),RANDBETWEEN(1,7),RANDBETWEEN(1,7))

完结,撒花✿✿ヽ(°▽°)ノ✿