You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power BI迁移Excel重复项标记公式失效,全返回0求助

解决Power BI中标记重复数据首条为1、其余为0的问题

原公式错误原因

你编写的公式中,两个COUNTROWS(FILTER(...))的条件完全一致,都是统计当前number对应的所有记录行数。由于当前行本身就属于该组,COUNTROWS的结果必然≥1,第一个IF条件始终为真,因此所有行都返回0。

正确实现方法

要实现“首个重复条目赋值1,后续条目赋值0”的效果,需要基于唯一排序依据(比如索引列、日期列等)对每个number组内的行排序,标记排序第一的行为1,其余为0。

方法1:使用RANKX函数(需唯一索引列)

先确保表有唯一索引列(可通过Power Query添加「索引列」,或使用表的主键),再创建计算列:

Duplicate = 
VAR CurrentNumber = 'KB Article usage'[number]
VAR RowRank = RANKX(
    FILTER('KB Article usage', 'KB Article usage'[number] = CurrentNumber),
    'KB Article usage'[Index], // 替换为你的唯一索引列名称
    , ASC, DENSE
)
RETURN IF(RowRank = 1, 1, 0)

方法2:使用COUNTROWS统计前置记录数

同样依赖唯一索引列,通过统计当前行之前的同number记录数判断是否为第一条:

Duplicate = 
VAR CurrentNumber = 'KB Article usage'[number]
VAR CurrentIndex = 'KB Article usage'[Index]
RETURN IF(
    COUNTROWS(FILTER('KB Article usage', 'KB Article usage'[number] = CurrentNumber && 'KB Article usage'[Index] < CurrentIndex)) = 0,
    1,
    0
)

无索引列的替代方案

如果没有索引列,可利用表中唯一标识行的字段组合(比如日期字段),按日期排序取最早的记录标记为1:

Duplicate = 
VAR CurrentNumber = 'KB Article usage'[number]
VAR FirstDate = MINX(FILTER('KB Article usage', 'KB Article usage'[number] = CurrentNumber), 'KB Article usage'[created_date])
RETURN IF('KB Article usage'[created_date] = FirstDate, 1, 0)

内容的提问来源于stack exchange,提问作者Enrique Santos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 18:42:52