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

Power BI中如何按日期筛选器仅显示每个ID的最新日期记录?

Power BI动态日期筛选下的ID最新记录统计问题

需求描述

基于dim_Calendar的日期筛选器,在动态日期图表中,每个ID仅显示其筛选范围内的最新日期记录,并统计唯一ID的数量。

示例数据

IDDate/hour
00315-03-2024 14:00
00315-03-2024 15:00
00319-03-2024 15:00
00915-03-2024 15:00
00918-03-2024 15:00

预期效果

  • 筛选范围1-03-2024至31-03-2024:显示2个ID(003对应19-03、009对应18-03)
  • 筛选范围1-03-2024至18-03-2024:显示2个ID(003对应15-03、009对应18-03)
  • 筛选范围1-03-2024至17-03-2024:显示2个ID(均对应15-03)

尝试的解决方案及问题

第一次尝试的DAX度量值

CALCULATE(
    COUNTROWS(
        FILTER(
            'MyTable',
            'MyTable'[Date/hour] = 
                CALCULATE(
                    MAX('MyTable'[Date/hour]),
                    ALLEXCEPT(
                        'MyTable' ,
                        'MyTable'[ID]
                    )
                )
        )
    )
)

该度量值未达到预期效果。

第二次尝试:新增Rank列后编写度量值

先新增Rank列(值越小对应ID的最新记录),数据如下:

IDDate/hourRank
00315-03-2024 14:003
00315-03-2024 15:002
00319-03-2024 15:001
00915-03-2024 15:002
00918-03-2024 15:001

编写的度量值:

test =  
VAR _min_rank = 
    CALCULATE(
        MIN( 'MyTable'[Rank] ) ,
        ALLSELECTED( d_Calendar[Date] )
    ) 
VAR _table = 
    FILTER(
        ADDCOLUMNS(
            SUMMARIZE(
                'MyTable' , 
                'MyTable'[ID] ,
                'MyTable'[Rank]
            ) ,
            "#latest_date" ,
            CALCULATE(
                MIN( 'MyTable'[Rank] ) ,
                ALLSELECTED( d_Calendar[Date] ) 
            )
        ) ,
        'MyTable'[Rank] = [#latest_date]
    ) 
VAR RESULT = 
    COUNTROWS( _table ) 

RETURN RESULT

问题

单个ID时统计正常,但多ID场景下,仅统计拥有相同最低Rank的ID,无法得到预期的2个ID的结果。

疑惑点

以下DAX代码未按预期工作的原因是什么?

CALCULATE(
    MIN( 'MyTable'[Rank] ) ,
    ALLSELECTED( d_Calendar[Date] ) 
)

内容的提问来源于stack exchange,提问作者Nika Kalichava

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 01:47:29