在powerquery中如何对相邻两行进行计算?

今天遇到一个求相邻两行差值的需求,如下图所示:


在powerquery中如何对相邻两行进行计算?_第1张图片
需求

要对相邻两个日期对应的数值求差值。
这个需求在银行流水、证券市场等应用场景应该会经常遇到。
解决办法也比较简单,记录如下。

首先增加索引列

因为要对相邻行进行计算的前提是能够获取到相邻行的值,这就需要索引列的帮助。


在powerquery中如何对相邻两行进行计算?_第2张图片
添加索引列

然后新增一列来获取相邻两行的差值

  = Table.AddColumn(已添加索引, "相邻行差值",  each if [索引]>0 then (已添加索引[数值]{[索引]}-已添加索引[数值]{[索引]-1}) else [数值])

用if来判断当前索引值是否大于0,等于0表示第一行,它前面没有别的行了,因此也就没法相减,于是返回当前表格【[数值]】列的当前行;索引大于0,则用表格【(已添加索引】的【[数值]】列的当前行【{[索引]}】减去表格【(已添加索引】的【[数值]】列的当前行的前一行【{[索引]-1})】值。

最后得到的结果如图所示:


在powerquery中如何对相邻两行进行计算?_第3张图片
处理结果

举一反三

示例中用了后一行减去前一行来演示,也可以用前一行减去后一行,或者求两行的和、积、商、平均值等等可以想到的其他数学运算,或者合并两行为一个单独的新行……

你可能感兴趣的:(在powerquery中如何对相邻两行进行计算?)