在powerquery中如何对相邻两行进行计算?
2019-10-15 本文已影响0人
PowerQuery
今天遇到一个求相邻两行差值的需求,如下图所示:
需求
要对相邻两个日期对应的数值求差值。
这个需求在银行流水、证券市场等应用场景应该会经常遇到。
解决办法也比较简单,记录如下。
首先增加索引列
因为要对相邻行进行计算的前提是能够获取到相邻行的值,这就需要索引列的帮助。
添加索引列
然后新增一列来获取相邻两行的差值
= Table.AddColumn(已添加索引, "相邻行差值", each if [索引]>0 then (已添加索引[数值]{[索引]}-已添加索引[数值]{[索引]-1}) else [数值])
用if来判断当前索引值是否大于0,等于0表示第一行,它前面没有别的行了,因此也就没法相减,于是返回当前表格【[数值]】列的当前行;索引大于0,则用表格【(已添加索引】的【[数值]】列的当前行【{[索引]}】减去表格【(已添加索引】的【[数值]】列的当前行的前一行【{[索引]-1})】值。
最后得到的结果如图所示:
处理结果
举一反三
示例中用了后一行减去前一行来演示,也可以用前一行减去后一行,或者求两行的和、积、商、平均值等等可以想到的其他数学运算,或者合并两行为一个单独的新行……