如何在Power BI中转换表格成为连续数字样式

有时候原始表格只包含有起止数字,但在分析中我们需要这起止之间所有的连续数。这篇文章将会介绍如何在Power BI中做这种转换。

数据:

https://github.com/checkming00/Medium_datasets/blob/main/china.xlsx?source=post_page-----a8da1afef259--------------------------------

*数据内年份不保证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:

至此,一个包含连续年份数字的,对应年代的表格完成了。

谢谢观看。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值