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

Power BI基于分组多列条件创建计算列的实现方法

Power BI计算列实现分组判断逻辑

以下是两种实现思路,根据你的需求选择合适的方案:

方案一:直接通过分组最大日期判断

创建计算列,使用DAX代码如下(记得替换成你的实际表名):

IsWellTestingLatest = 
VAR CurrentLocation = '你的表名'[Ubicación.Name]
-- 获取当前分组的最新交付日期
VAR MaxDatePerLocation = CALCULATE(MAX('你的表名'[Fecha_entrega__c]), ALLEXCEPT('你的表名', '你的表名'[Ubicación.Name]))
-- 获取最新日期对应的Sector值
VAR LatestSector = CALCULATE(MAX('你的表名'[Sector_entrante__c]), 
    FILTER('你的表名', 
        '你的表名'[Ubicación.Name] = CurrentLocation && 
        '你的表名'[Fecha_entrega__c] = MaxDatePerLocation
    )
)
-- 判断并返回结果
RETURN
IF(LatestSector = "Well Testing", 1, 0)

代码说明

  • ALLEXCEPT函数会保留当前行的Ubicación.Name筛选器,清除其他筛选,从而计算出该分组的最大日期。
  • 如果同一分组内最新日期对应多行数据,MAX会返回文本排序中最大的Sector_entrante__c值;若需处理多行场景,可将MAX替换为CONCATENATEX并判断是否包含目标值。

方案二:结合已有的RANKX排序列

如果你已经通过RANKX创建了分组内的日期排序列(例如命名为RankPerLocation,排名1对应最新日期),可以直接基于该列实现:

IsWellTestingLatest = 
VAR CurrentLocation = '你的表名'[Ubicación.Name]
-- 获取分组内排名第一的行的Sector值
VAR LatestSector = CALCULATE(MAX('你的表名'[Sector_entrante__c]), 
    FILTER('你的表名', 
        '你的表名'[Ubicación.Name] = CurrentLocation && 
        '你的表名'[RankPerLocation] = 1
    )
)
RETURN
IF(LatestSector = "Well Testing", 1, 0)

代码说明

利用已有的排序列快速定位分组内的最新行,逻辑更简洁,适合已经完成排序计算的场景。

内容的提问来源于stack exchange,提问作者Sebastián Frades

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 16:54:57