怎么判断同一行里是否有重复值?全过程思路掰开看!

- 1 -

问题和要求

源数据如下:

要求判断各行是否存在重复值,结果如下:

- 2 -

思路和解法

要对一行内容进行判断,首先得取得这一行的内容,我们知道,在Power Query里,可以通过下划线(_)直接得到当前行的内容(可以参考文章:重要!很重要!非常重要!理解PQ里的数据结构或看免费系列视频: 不理解PQ的数据结构,再怎么努力也学不好M函数!),如下图所示:

通过上面的方法得到的是一个记录(Record),因为对于记录来说,总是要根据字段名称进行数据的处理,所以处理起来并不灵活,能使用的函数相对较少——无论在什么编程语言里,这一点大家都可以作为一个“常识”,有兴趣的朋友也可以对比一下PQ里Record类的函数和List类的函数到底谁更多。

既然这里要判断的是记录里的值,而跟列名没有关系,所以,我们下一步要考虑先将记录的值转为列表,这里PQ提供了一个简单的函数(Record.FieldValues):

有了这个列表,就简单了,因为PQ里对于列表的处理,函数太多了,基本我们能想到的常用的操作都有,如计数、去重、交叉、合并……,当然,也包括判断是否非重复(List.IsDistinct):

得到了是否非重复的判断结果,要转成“有/无”的最终结果,那当然加个判断就可以了:

- 3 -

总结,总结

对于Power Query里的问题,我们可以一点点地去尝试,一层层地去解决问题,一步步地去接近答案,最终得到想要的结果——再复杂的问题,掰开了,揉碎了,都一样

而这个过程中涉及的思路和知识,当然需要将基础的内容先学好,再加上日常多了解、多运用,也许,这就是“捷径”了吧。

【近期热门文章】

关注公众号,发消息“数据”

获取文章配套数据

(0)

相关推荐