Power BI中用LASTDATE与IF函数计算产品类型列的方法求助
解决方案:创建Product Type计算列
核心思路
按Product Code分组,先获取每个产品的最新Movement Date,再匹配该日期对应的To Location,最后根据位置标记产品类型。
DAX计算列公式
Product Type = VAR LatestDate = CALCULATE(LASTDATE('Table'[Movement Date]), ALLEXCEPT('Table', 'Table'[Product Code])) VAR LatestLocation = CALCULATE(MAX('Table'[To Location]), ALLEXCEPT('Table', 'Table'[Product Code]), 'Table'[Movement Date] = LatestDate) RETURN IF(LatestLocation = "NSW", "Product A", IF(LatestLocation = "WA", "Product B", BLANK()))
公式说明
LatestDate:通过ALLEXCEPT保留当前行的Product Code上下文,计算该产品的最新移动日期LatestLocation:筛选当前产品且移动日期等于最新日期的记录,提取对应的目标位置(用MAX是为了兼容同一天多条记录的情况,若数据确保最新日期唯一,用MIN或直接取值效果一致)RETURN逻辑:根据最新位置返回对应标记,非NSW/WA的情况返回空值
示例数据验证
结合你提供的示例表,计算结果如下:
| Product Code | Product Type |
|---|---|
| aaa123 | Product B |
| aaa123 | Product B |
| aaa123 | Product B |
| bbb123 | Product A |
| bbb123 | Product A |
| bbb123 | Product A |
| ccc123 | (空值) |
| ccc123 | (空值) |
| ccc123 | (空值) |
内容的提问来源于stack exchange,提问作者Andrew A
相关产品推荐
相关产品推荐

