如何在Power BI中用DAX公式从同表父ID获取最后一个子ID
在Power BI中用DAX根据父ID获取对应最后一个子ID
需求说明
在同一张表格里,需要根据Project Original ID(父ID),找到该父ID对应的最后一个Project ID(子ID)。这里的“最后一个”分两种常见场景,下面分别给出实现方法:
方法一:取数据顺序中的最后一个子ID(计算列)
创建计算列,使用以下DAX公式:
最后一个子ID = VAR 当前父ID = '项目表'[Project Original ID] RETURN CALCULATE( LASTNONBLANK('项目表'[Project ID], 1), FILTER( '项目表', '项目表'[Project Original ID] = 当前父ID ) )
- 把公式里的
'项目表'替换成你实际使用的表格名称 LASTNONBLANK会返回筛选后结果集中最后一个非空的Project ID,顺序取决于数据加载顺序或表格当前的排序设置
方法二:取数值最大的子ID(计算列)
如果“最后一个”指的是子ID数值最大的项,用MAX函数更直接:
最后一个子ID(数值最大) = VAR 当前父ID = '项目表'[Project Original ID] RETURN CALCULATE( MAX('项目表'[Project ID]), FILTER( '项目表', '项目表'[Project Original ID] = 当前父ID ) )
示例验证
假设你的表格数据如下:
| Project Original ID |
|---|
| 123 |
| 123 |
| 0 |
用方法一的话,若1235是父ID123下的最后一行数据,结果就是1235;用方法二的话,同样会返回1235(因为它是该父ID下数值最大的子ID)。
内容的提问来源于stack exchange,提问作者Rafi Ur Rehman
相关产品推荐
相关产品推荐

