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

为何我的DIVIDE()度量返回1?分子与分母为何相等?

你写的DAX返回1的核心原因是分子和分母的筛选范围完全一致,问题出在FILTER('fSampleResultsOilWater', ...)的使用方式上:

在CALCULATE的筛选器参数中,FILTER('fSampleResultsOilWater', ...)是直接迭代整个fSampleResultsOilWater表(忽略外部视觉/切片器对该表的筛选),只保留符合Severity条件的行;再叠加日期筛选后,分子统计的是全表中符合Severity+4Q2023的行数。

而分母中,ALL('fSampleResultsOilWater')清除了该表的外部筛选,随后的FILTER('fSampleResultsOilWater', ...)同样迭代整个表筛选Severity条件,再叠加日期筛选,统计的行数和分子完全相同,因此DIVIDE返回1。


修正后的度量值

DIVIDE(
    -- 分子:保留外部视觉/切片器筛选,叠加Severity和日期条件
    CALCULATE(
        COUNTROWS('fSampleResultsOilWater'),
        'fSampleResultsOilWater'[Severity] IN {"Abnormal", "Severe"},
        dDates[Q Year] = "4Q2023"
    ),
    -- 分母:清除f表的外部筛选,仅保留Severity和日期条件
    CALCULATE(
        COUNTROWS('fSampleResultsOilWater'),
        ALL('fSampleResultsOilWater'),
        'fSampleResultsOilWater'[Severity] IN {"Abnormal", "Severe"},
        dDates[Q Year] = "4Q2023"
    )
)

修正逻辑说明

  • 分子使用列级筛选条件替代FILTER全表遍历,这样会自动继承外部视觉/切片器对fSampleResultsOilWater表的筛选,再叠加Severity和日期的限制,得到你期望的"更小数据集子集"。
  • 分母通过ALL('fSampleResultsOilWater')清除该表的所有外部筛选,再叠加相同的Severity和日期条件,得到全表范围内的符合条件行数。

如果需要保留外部对dDates表的筛选(而非固定4Q2023),可以把分母中的dDates[Q Year] = "4Q2023"去掉,让分母继承外部日期筛选。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 08:32:51