上期内容给大家讲解了关于图表精品图表 | Excel绘制“带有阈值分割的条形图和棒棒图”的制作方法。本期给大家讲解一下关于Power Query的知识 。
如下图,将下面的数据向下填充逆过程。即将左侧的数据转换至右侧的数据。
如果是从右往左的话是直接向下填充即可,但是从左侧转换右侧的是一个逆向的过程。就不能按正常的方法来转换了。
解题思路:
因为没法直接在原表上转换,所以先单独构建list,使用List.Positions直接获得列的索引,也就是{0..11},然后对其转换,分别获取[年级]列中每一行的值,再用if判断。
但是如果是第一行,索引是0,-1是负的就会报错,所以还要用try otherwise做个异常处理,如果错误就获取第一行。
构建完list,我们还要再合并到原表上,使用Table.FromColumns即可。
具体的代码如下:
let 源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content], 转换 = Table.FromColumns( {List.Transform( List.Positions(源[姓名]) ,each try if 源[姓名]{_} =源[姓名]{_-1} then null else 源[姓名]{_} otherwise 源[姓名]{0} ) } & { 源[编号] } ,Table.ColumnNames(源) )in 转换