今天答疑一个读者问题,因为需求比较难以表达,大家直接看案例吧。
案例:下图 1 中的第 n 天指的是从 A 列的日期开始计算的第 n 天,也就是说 6/1 日的第 1 天是 6/1 日,而第 5 天则是 6/5 日;而对于 6/2 日来说,第 5 天是 6/6 日。
这样的表的确容易引起歧义,也难怪需要调整格式。
下图 2 中的表格调整后,就比较清楚了,比如,6/5 日是 6/1 日的第 5 天,是 6/2 日的第 4 天……是 6/5 日的第 1 天。
那么如何将图 1 转换成图 2 呢?
解决方案:1. 选中数据表的任意单元格 --> 选择菜单栏的“数据”-->“从表格”
2. 在弹出的对话框中保留默认设置 --> 点击“确定”
表格已上传至 Power Query。
3. 选中“日期”列 --> 选择菜单栏的“主页”--> 将“数据类型”修改为“日期”
4. 在弹出的对话框中点击“替换当前转换”。
5. 保持选中“日期”列 --> 选择菜单栏的“转换”-->“逆透视列”-->“逆透视其他列”
6. 选中“属性”列 --> 选择菜单栏的“添加列”-->“提取”-->“范围”
7. 在弹出的对话框的两个文本框中都输入“1”--> 点击“确定”
提取出了“属性”列中的数字。
8. 点击“文本范围”标题左边的格式符号 --> 在弹出的菜单中选择“整数”
9. 用同样的方式将“日期”列的格式修改为“整数”。
Power Query 中不同类型的数据大多是不能直接进行计算的,所以要先改格式。
10. 保持选中“日期”列 --> 选择菜单栏的“添加列”-->“自定义列”
11. 在弹出的对话中输入以下公式 --> 点击“确定”:
[日期]+[文本范围]-1
12. 将“自定义”列修改为“日期”格式。
13. 删除“日期”和“文本范围”列。
14. 选中“属性”列 --> 选择菜单栏的“转换”-->“透视列”
15. 在弹出的对话框中选择“值”--> 点击“确定”
16. 将“自定义”列的列名修改为“日期”。
17. 选择菜单栏的“主页”-->“关闭并上载”-->“关闭并上载至”
18. 在弹出的对话框中选择“表”--> 选择“现有工作表”及所需上传至的位置 --> 点击“加载”
右侧绿色的表格就是想要的效果。