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

求统计存在不同状态的重复ID的DAX度量值解决方案

解决思路与修正后的DAX度量值

问题核心

需要统计同时拥有"Donor"和"Recipient"两种Site_Nature状态,且**Primary AAV Vendor为"T-Mobile"**的Microwave IQ Link ID的总数量。

原代码的问题

原DAX逻辑存在两处关键错误:

  • count_Donor和count_Recepient计算的是全局范围内符合条件的ID总数,而非当前单个ID是否存在对应状态
  • RETURN的IF仅返回1或0,但未对所有ID进行遍历汇总,无法得到符合条件的ID总数量

可行的解决思路与DAX实现

方法1:基于集合交集的简洁实现

通过分别提取符合条件的两类ID集合,取交集后统计数量:

Link-EC-Count = 
// 提取Vendor为T-Mobile且状态为Donor的唯一ID集合
VAR DonorIDs = 
    CALCULATETABLE(
        VALUES(MagentaBuilt_Linked[Microwave IQ Link ID]),
        MagentaBuilt_Linked[Site_Nature] = "Donor",
        MagentaBuilt_Linked[Primary AAV Vendor] = "T-Mobile"
    )
// 提取Vendor为T-Mobile且状态为Recipient的唯一ID集合
VAR RecipientIDs = 
    CALCULATETABLE(
        VALUES(MagentaBuilt_Linked[Microwave IQ Link ID]),
        MagentaBuilt_Linked[Site_Nature] = "Recipient",
        MagentaBuilt_Linked[Primary AAV Vendor] = "T-Mobile"
    )
// 统计两个集合的交集数量,即同时拥有两种状态的ID总数
RETURN
    COUNTROWS(INTERSECT(DonorIDs, RecipientIDs))

方法2:逐ID验证状态的实现

先过滤出目标Vendor的行,再对每个ID验证是否同时存在两种状态:

Link-EC-Count = 
// 先筛选出Vendor为T-Mobile的所有数据行
VAR FilteredData = 
    FILTER(MagentaBuilt_Linked, MagentaBuilt_Linked[Primary AAV Vendor] = "T-Mobile")
// 筛选出同时包含Donor和Recipient状态的ID
VAR ValidIDs = 
    FILTER(
        VALUES(FilteredData[Microwave IQ Link ID]),
        CALCULATE(COUNTROWS(FILTER(FilteredData, FilteredData[Site_Nature] = "Donor"))) > 0
        && CALCULATE(COUNTROWS(FILTER(FilteredData, FilteredData[Site_Nature] = "Recipient"))) > 0
    )
// 统计符合条件的ID总数
RETURN
    COUNTROWS(ValidIDs)

方法3:基于原代码的修正版

保留原代码的判断逻辑,通过SUMX遍历所有ID并汇总结果:

Link-EC-Count = 
SUMX(
    // 遍历所有唯一的Microwave IQ Link ID
    VALUES(MagentaBuilt_Linked[Microwave IQ Link ID]),
    VAR count_Donor =
        CALCULATE (
            COUNTROWS(MagentaBuilt_Linked),
            MagentaBuilt_Linked[Site_Nature] = "Donor",
            MagentaBuilt_Linked[Primary AAV Vendor] = "T-Mobile"
        )
    VAR count_Recepient =
        CALCULATE (
            COUNTROWS(MagentaBuilt_Linked),
            MagentaBuilt_Linked[Site_Nature] = "Recipient",
            MagentaBuilt_Linked[Primary AAV Vendor] = "T-Mobile"
        )
    // 对单个ID判断是否同时拥有两种状态,符合则计1,否则计0
    RETURN
        IF ( count_Donor > 0 && count_Recepient > 0, 1, 0 )
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 18:45:43