怎么判断同一行里是否有重复值?全过程思路掰开看!
- 1 -
问题和要求
源数据如下:
要求判断各行是否存在重复值,结果如下:
- 2 -
思路和解法
要对一行内容进行判断,首先得取得这一行的内容,我们知道,在Power Query里,可以通过下划线(_)直接得到当前行的内容(可以参考文章:重要!很重要!非常重要!理解PQ里的数据结构或看免费系列视频: 不理解PQ的数据结构,再怎么努力也学不好M函数!),如下图所示:
通过上面的方法得到的是一个记录(Record),因为对于记录来说,总是要根据字段名称进行数据的处理,所以处理起来并不灵活,能使用的函数相对较少——无论在什么编程语言里,这一点大家都可以作为一个“常识”,有兴趣的朋友也可以对比一下PQ里Record类的函数和List类的函数到底谁更多。
既然这里要判断的是记录里的值,而跟列名没有关系,所以,我们下一步要考虑先将记录的值转为列表,这里PQ提供了一个简单的函数(Record.FieldValues):
有了这个列表,就简单了,因为PQ里对于列表的处理,函数太多了,基本我们能想到的常用的操作都有,如计数、去重、交叉、合并……,当然,也包括判断是否非重复(List.IsDistinct):
得到了是否非重复的判断结果,要转成“有/无”的最终结果,那当然加个判断就可以了:
- 3 -
总结,总结
对于Power Query里的问题,我们可以一点点地去尝试,一层层地去解决问题,一步步地去接近答案,最终得到想要的结果——再复杂的问题,掰开了,揉碎了,都一样!
而这个过程中涉及的思路和知识,当然需要将基础的内容先学好,再加上日常多了解、多运用,也许,这就是“捷径”了吧。
【近期热门文章】
关注公众号,发消息“数据”
获取文章配套数据
赞 (0)