上期内容给大家讲解了关于图表精品图表 | 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    转换
