莫度编程网

技术文章干货、编程学习教程与开发工具分享

随机抽奖排除没来的,旁人看不到 Excel 公式,只有结果

很多同学会觉得 Excel 单个案例讲解有些碎片化,初学者未必能完全理解和掌握。不少同学都希望有一套完整的图文教学,从最基础的概念开始,一步步由简入繁、从入门到精通,系统化地讲解 Excel 的各个知识点。

现在终于有了,以下专栏,从最基础的操作和概念讲起,用生动、有趣的案例带大家逐一掌握 Excel 的操作技巧、快捷键大全、函数公式、数据透视表、图表、打印技巧等……学完全本,你也能成为 Excel 高手。

有同学提问:M 函数中有没有类似 rand 的随机函数?


有哦,今天还是用一个随机抽奖的案例来讲解一下。


案例:


对下图 1 中 的人随机抽奖,由于詹姆斯下士当天请假了,所以抽奖结果中不要出现他,其余人机会均等。


效果如下图 2、3 所示。


解决方案:


1. 选中数据表的任意单元格 --> 选择任务栏的“数据”-->“来自表格/区域”


2. 在弹出的对话框中保留默认设置 --> 点击“确定”


表格已经上传至 Power Query。


4. 在“查询”区域中复制“表1”。


5. 选中复制出来的查询 --> 选择任务栏的“主页”-->“保留行”-->“保留最前面几行”


6. 在弹出的对话框中输入 1 --> 点击“确定”


7. 选择任务栏的“添加列”-->“自定义列”


8. 在弹出的对话框中输入以下公式 --> 点击“确定”:

Number.RandomBetween(2,11)


公式释义:

  • Number.RandomBetween 就相当于 Excel 中的 randbetween 函数,作用是生成两个参数之间的随机值;
  • (2,11):11 是因为一共有 11 个人,从 2 开始的目的是跳过第一个人“王钢蛋”,只在后面 10 个人之间循环抽奖;为什么?后面会讲。


9. 将“自定义”列的格式修改为整数。


10. 删除“姓名”列。


11. 选中“查询”中的“表1”--> 选择任务栏的“添加列”-->“索引列”-->“从 1”


12. 在“查询”区域中选择“表1(2)”--> 选择任务栏的“主页”-->“合并查询”


13. 在弹出的对话框的下拉菜单中选择“表1”--> 选中“索引”列 --> 点击“确定”


14. 点开“表1”旁边的扩展钮 --> 取消勾选“索引”和“使用原始列名作为前缀”--> 点击“确定”


15. 选择任务栏的“添加列”-->“条件列”


16. 按以下方式设置 --> 点击“确定”:

  • 列名:输入“姓名”
  • 运算符:选择“等于”
  • 值:输入“詹姆斯下士”
  • 输出:输入“王钢蛋”
  • ELSE:选择“选择列”选项 --> 选择“姓名”


因为这一步将“詹姆斯下士”强制显示为“王钢蛋”了,所以在步骤 8 的时候就不需要将“王钢蛋”纳入随机函数范围内,否则“王钢蛋”会有两次抽奖机会,影响结果公平性。


17. 选中“自定义.1”列 --> 删除其他列


18. 修改标题。


19. 选择任务栏的“主页”-->“关闭并上载”-->“关闭并上载至”


20. 在弹出的对话框中选择“仅创建连接”--> 点击“确定”


21. 在右侧的“查询 & 连接”区域中选中“表1 (2)”--> 右键单击 --> 在弹出的对话框中选择“加载到”


22. 在弹出的对话框中选择“表”--> 选择“现有工作表”及所需上传至的位置 --> 点击“确定”


最右侧绿色的表格就是抽奖结果。


如果要重新抽,只需在绿色的表格区域刷新一下,就能随机抽出另一个人,但是绝不会出现“詹姆斯下士”。

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言

    Powered By Z-BlogPHP 1.7.4

    蜀ICP备2024111239号-43