有时候原始表格只包含有起止数字,但在分析中我们需要这起止之间所有的连续数。这篇文章将会介绍如何在Power BI中做这种转换。
数据:
*数据内年份不保证100%准确,做了某些简化。
导入Power BI中可以看到表格结构:
可以看到Years中包含了起止年份数字,我们需要把年份之间的所有数字列出做成连续的样式。
首先把Years进行分列(“-”)分成起止年份两列:
把BC 替换成-,注意也要把中间的空格替换成""。
然后把present替换成今年年份2024。如果你想将此步骤做成自动获取,可以先把present替换成任意内容比如2020:
然后在代码行中,把“2020”替换成Number.ToText(Date.Year(DateTime.LocalNow())):
现在,把起止两列改名为Start和End,且数据类型转换为整数:
准备工作完成,可以开始转换了。
1. 选中Country和Period做Unpivot other columns:
2. 建一个新的空白Query,输入代码来新增一个连续数字的表格:
Table.FromList( List.Generate( ()=> -2100, each _<= 2024, each _+1), Splitter.SplitByNothing(), type table[Years = Int64.Type])
这个表格包含了从-2100到2024的所有整数。如果你想把起止数字都做成自动获取,可以把上述代码的-2100替换成 List.Min(China[Value]),2024替换成 List.Max(China[Value]):
之后用这个新建的表格left join 原来的表格,用年份作为连接键:
保险起见,先把年份按从小到大排序,然后把Country和Period做Fill Down:
至此,一个包含连续年份数字的,对应年代的表格完成了。
谢谢观看。