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

如何用DAX语言按日期去重生成租户记录的Distinct Key?

DAX实现租户记录重复日期标记需求

要实现同一Unit Number下首次出现的Defect Date标记为1、重复日期标记为0的需求,可以使用以下DAX表达式创建计算列:

Distinct Key = 
VAR CurrentUnit = '你的表名'[Unit Number]
VAR CurrentDate = '你的表名'[Defect Date]
VAR CurrentRowIndex = ROWINDEX('你的表名')
VAR FirstMatchingRow = 
    MINX(
        FILTER('你的表名', '你的表名'[Unit Number] = CurrentUnit && '你的表名'[Defect Date] = CurrentDate),
        ROWINDEX('你的表名')
    )
RETURN
    IF(CurrentRowIndex = FirstMatchingRow, 1, 0)

说明:

  1. 替换表达式中的你的表名为实际的表格名称
  2. ROWINDEX函数返回表格中每行的索引位置,能准确定位同一Unit Number+Defect Date组合的首次出现行
  3. 通过MINX筛选出当前单元+日期组合的最小行索引,将当前行索引与之对比,相等则标记为1,否则为0

如果你的环境不支持ROWINDEX函数(比如旧版本Power BI),可以改用基于唯一标识列的写法(假设表格有唯一ID列RecordID):

Distinct Key = 
VAR CurrentUnit = '你的表名'[Unit Number]
VAR CurrentDate = '你的表名'[Defect Date]
VAR CurrentID = '你的表名'[RecordID]
VAR MinMatchingID = 
    MINX(
        FILTER('你的表名', '你的表名'[Unit Number] = CurrentUnit && '你的表名'[Defect Date] = CurrentDate),
        '你的表名'[RecordID]
    )
RETURN
    IF(CurrentID = MinMatchingID, 1, 0)

为什么之前的方法没生效?

  • COUNTIF是Excel函数,DAX中没有直接对应的函数,单纯用CALCULATE+COUNTROWS计数无法定位首次出现的行
  • DISTINCT函数仅返回唯一值集合,不能直接标记每行是否为首次出现

内容的提问来源于stack exchange,提问作者Jorine Yeoh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 05:10:13