今天继续讲一讲数据表的快速整理问题。
案例:
将下图 1 的排班表转换成姓名日期一对一的日期列表,效果如下图 2 所示。
解决方案 1:1. 选中数据表的任意单元格 --> 选择工具栏的“数据”-->“来自表格/区域”
2. 在弹出的对话框中保留默认设置 --> 点击“确定”
表格已经上传至 Power Query。
3. 点击“起始”左边的格式按钮 --> 将格式修改为“整数”
4. 点击“替换当前转换”按钮。
5. 重复同样的步骤将“结束”列的格式也修改为“整数”。
6. 选择工具栏的“添加列”-->“自定义列”
7. 在弹出的对话框中按以下方式设置 --> 点击“确定”:
新列名:输入“当班日期”
自定义列公式:输入 {[起始]..[结束]}
8. 点开“当班日期”旁边的扩展钮 --> 选择“扩展到新行”
9. 将“当班日期”列的格式修改为“日期”。
10. 删除“起始”和“结束”列。
11. 选择工具栏的“主页”-->“关闭并上载”-->“关闭并上载至”
12. 在弹出的对话框中选择“表”--> 选择“现有工作表”及所需上传至的位置 --> 点击“确定”
右侧绿色的表格就是按天列出的排班表。
解决方案 2:1. 重复上述步骤 1、2,将表格上传至 Power Query。
2. 选择“添加列”-->“自定义列”
3. 在弹出的对话框中按以下方式设置 --> 点击“确定”:
新列名:输入“当班日期”
输入以下公式:
List.Transform({Number.From([起始])..Number.From([结束])},Date.From)
公式释义:
{Number.From([起始])..Number.From([结束])}:生成从 [起始] 至 [结束],步长为 1 的列表;
List.Transform(...,Date.From):把上述 list 的数据类型转换成日期格式
4. 点开“当班日期”旁边的扩展钮 --> 选择“扩展到新行”
5. 重复上述步骤 10 至 12。