很多同学会觉得 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. 在弹出的对话框中选择“表”--> 选择“现有工作表”及所需上传至的位置 --> 点击“确定”
最右侧绿色的表格就是抽奖结果。
如果要重新抽,只需在绿色的表格区域刷新一下,就能随机抽出另一个人,但是绝不会出现“詹姆斯下士”。