为啥只有each,没有_?还有冲突? | PQ重难点突破

2022-11-07 19:56:12 浏览数 (1)

关于(x)的问题,我们前面写了几个文章,但在进一步深入之前,我们还得再用过具体的例子把一种特殊情况说一下。

先添加条件列:

这时,生成的公式为:

问题来了,前面不是说,each总是和_一起使用的吗?现在怎么只见each,却不见_?

其实,这是Power Query的又一简写方式,即当引用代表记录(_)的具体列值时,可以省略_,直接写列名。

还原上面的例子,在[数量]前,补回下划线,大家就很容易理解:

同时,借这个例子,我们再调整为(x)的形式:

这个问题本身很简单,这种简化感觉也挺自然,真正的问题在于,省略一时爽,遇到稍微复杂的情况,就会导致很严重的冲突。

比如,从上一个步骤中,筛选出“数量”小于等于当前行“数量”的数据,假如都用each _,怎么区分到底是上一步骤的“数量”还是当前步骤的“数量”?是不是很容易导致冲突、混乱?

这种情况下,我们就要考虑用参数进行区分,比如,用(x)代表“已添加自定义” 步骤的数据:

我们再看完整的步骤公式,each在Table.SelectRows函数外面,代表传入的“数量”,为当前步骤“自定义”的“数量”:

再进一步,我们可以将each的情况进一步替换为另一个参数:

这样,每一个参数就会有非常明确的指代!下一次,我们就深入讲多参数问题。

0 人点赞