如何在Power BI中展示两个及以上工作表中的重复数据
解决多站点审计重复发现的Power BI方案
要找出任意2个及以上站点重复的识别编号(column2),用Power Query做预处理是最适合的方案——不仅能解决当前3个站点的问题,后续扩展到50+站点也不用改逻辑,直接批量套用。
具体操作步骤(Power Query编辑器内完成)
1. 给每个站点表加标识列,再合并成总表
- 打开Power Query编辑器(主页→转换数据)
- 逐个打开每个站点的工作表查询:
- 点击「添加列」→「自定义列」,输入公式
= "站点1"(替换成对应站点的名称,比如"北京站点"),点击确定。这一步是给每条数据打上所属站点的标签。
- 点击「添加列」→「自定义列」,输入公式
- 把所有加了标识列的表合并:选中所有3个表(Ctrl多选),右键→「追加查询」→「将查询追加为新查询」,得到一张包含所有站点数据+站点标识的总表。
2. 统计每个编号的跨站点出现次数
- 在总表中,点击「转换」→「分组依据」:
- 分组依据选
column2(识别编号) - 新列名设为
站点出现次数 - 操作选「计数(不同)」,列选你刚才加的站点标识列
用「计数(不同)」是为了排除同一个站点内重复编号的干扰,确保统计的是不同站点的数量。
- 分组依据选
3. 筛选重复编号并关联原始数据
- 对分组后的表,筛选
站点出现次数列,只保留值≥2的行(也就是在2个及以上站点出现的编号) - 把筛选后的表和总表做内连接:
- 点击「合并查询」→「合并查询作为新查询」
- 左表选筛选后的分组表,右表选总表,连接键选
column2,连接类型选「仅匹配的行」
- 展开合并后的列,保留你需要的字段(比如column2、column4、站点标识)
最终得到的表就是所有跨站点重复的审计发现,能清晰看到每个发现出现在哪些站点。
你之前的DAX写法问题说明
你写的Column = IF (('worksheet1'[column2] = 'worksheet2[column2]), (worksheet1[column2]))没法用的原因:
- DAX跨表直接比较没有行上下文,不知道要对应哪一行,会返回错误或不符合预期的结果
- 这种两两对比的方式完全无法扩展到50个站点,总不能写几十层IF嵌套
50+站点扩展提示
后续新增站点时,只需要给新工作表加对应的站点标识列,追加到总表里,重新运行分组和筛选步骤就行,全程不用改逻辑,自动化完成。
内容的提问来源于stack exchange,提问作者JMR357
相关产品推荐
相关产品推荐

