首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >删除重复项很简单?来看看这个实际工作问题? | Power Query实战

删除重复项很简单?来看看这个实际工作问题? | Power Query实战

作者头像
大海Power
发布2022-11-07 19:20:41
发布2022-11-07 19:20:41
1.8K0
举报

删除重复项,在很多情况下是一个很简单的问题,无论是基于单列,还是多列。

但是,有一种情况不太一样,比如下面这种两点之间路径的里程问题:

从A地到B地,以及从B地到A地,视为重复的数据,只需要其中一条(对于多条相同起止——如A-B的情况已删重复):

显然,这个问题无法直接通过PQ的删除重复行操作功能实现。实际上,从思路上,这是一个针对某项内容,判断此前是否出现过的问题,类似于Excel中如下公式:

但是,因为这个问题涉及两列,所以,问题要稍微复杂一些。具体怎么做呢?下面直接在操作步骤中进行讲解。

Step-01 合并起止列,形成“起:止”形式数据

Step-02 合并止起列,形成“止:起”形式数据

Step-03 添加索引列

因为Power Query里无法像Excel里进行相对单元格或区域引用,因此,需要通过添加索引进行辅助计算(获取从第1行到当前上一行数据)。

Step-04 添加步骤,对“起止”列进行缓存

实际工作中,这种问题通常涉及数据量较大,而且,这个问题里将涉及对“起止”列的频繁重复调用,因此,先进行缓存,以便在后续重复调用时极大提升效率。

Step-05 判断“止起”形式的数据,在此前(List.FirstN)所有“起止”内容中是否存在(List.Contains):

Step-06 筛选结果为False的数据

所得结果为True,即表示当前路径的反方向形式在此前的路径中存在,即为重复数据。

至此,这个涉及往返路径删重复的问题即已得到解决。

其中,比较容易被绕进起止、止起组合的“死循环”里,这时,理清思路很关键,而要理清思路,可以在纸上罗列一些数据,静下心来逐行标记一下可能使用算法的计算结果,随着标记行数的增多,困惑就会越来越少,思路自然越来越清晰——

动起手来,问题往往就会迎刃而解!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-06-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Excel到PowerBI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档