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

如何将Dim_PERIMETRE筛选条件整合至现有DAX查询?

DAX筛选条件整合方案

要把Dim_PERIMETRE[Périmètre] = "Client"的筛选条件整合到现有代码里,核心是把这个筛选注入到[RATIO]度量值的计算上下文里,下面是两种可行的修改方式:

方式一:直接在计算RATIO时添加筛选(推荐)

这种方式直接控制度量值的计算范围,确保每个日期的RATIO都是基于"Client"维度统计的,修改点在SUMMARIZE的"RATIO"定义部分:

EVALUATE 
VAR StartDate = TODAY () - 84
VAR EndDate = TODAY () - 3 
VAR RATIO_By_Date_Table =
FILTER (
    SUMMARIZE (
        FILTER (
            Dim_CALENDRIER,
            // 优化:日期类型直接比较,无需转字符串
            Dim_CALENDRIER[Date] >= StartDate
                && Dim_CALENDRIER[Date] <= EndDate
        ),
        Dim_CALENDRIER[Date],
        Dim_CALENDRIER[Semaine],
        'Dim_CALENDRIER'[Date.Key0],
        // 用CALCULATE给RATIO添加维度筛选
        "RATIO", CALCULATE([RATIO], Dim_PERIMETRE[Périmètre] = "Client")
    ),
    [RATIO] <> BLANK ()
)
RETURN
SELECTCOLUMNS (
    TOPN (
        COUNTROWS ( RATIO_By_Date_Table ),
        RATIO_By_Date_Table,
        Dim_CALENDRIER[Date], ASC
    ),
    "Date", Dim_CALENDRIER[Date],
    "Semaine", Dim_CALENDRIER[Semaine],
    "RATIO_NJSR", ROUND ( [RATIO], 2 )
)

方式二:用CALCULATETABLE包裹整个统计逻辑

如果需要给整个RATIO_By_Date_Table都加上这个维度筛选,可以用CALCULATETABLE来包裹SUMMARIZE部分:

EVALUATE 
VAR StartDate = TODAY () - 84
VAR EndDate = TODAY () - 3 
VAR RATIO_By_Date_Table =
FILTER (
    CALCULATETABLE(
        SUMMARIZE (
            FILTER (
                Dim_CALENDRIER,
                Dim_CALENDRIER[Date] >= StartDate
                    && Dim_CALENDRIER[Date] <= EndDate
            ),
            Dim_CALENDRIER[Date],
            Dim_CALENDRIER[Semaine],
            'Dim_CALENDRIER'[Date.Key0],
            "RATIO", [RATIO]
        ),
        // 在这里添加全局维度筛选
        Dim_PERIMETRE[Périmètre] = "Client"
    ),
    [RATIO] <> BLANK ()
)
RETURN
SELECTCOLUMNS (
    TOPN (
        COUNTROWS ( RATIO_By_Date_Table ),
        RATIO_By_Date_Table,
        Dim_CALENDRIER[Date], ASC
    ),
    "Date", Dim_CALENDRIER[Date],
    "Semaine", Dim_CALENDRIER[Semaine],
    "RATIO_NJSR", ROUND ( [RATIO], 2 )
)

额外优化说明

原代码里用FORMAT(StartDate, "YYYY-MM-DD")转字符串后和日期列比较是多余的,因为StartDate和Dim_CALENDRIER[Date]都是日期类型,直接比较性能更好也更准确,上面的代码已经做了这个优化。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 11:56:12