暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

PowerBI-DAX-Path

BISeven 2021-07-05
955

在日常的数据处理中,我们见到的类人员汇报线等具有层级结构的数据组成是平铺展开的:


但是,有时候层级机构的数据组织方式是由两列数据构成的:上级和下级,如下:


那么,如何处理图2中的数据,使其还原成图1的结果?

 

我们可以利用Path函数来由图2转换成图1,Path函数就是今天的主角。

 

我们利用一下Dax生成一个计算列:

path_ = PATH('Path'[下级], 'Path'[上级])
复制


 

我们可以观察新列path_, 对于列"下级", path_找到了其所有的上级,并用"|"进行分割。

 

接下来,我们可以在通过SelecteColumns 和Pathitems 函数生成一张新表:

EVALUATE
T
= SELECTCOLUMNS (
'Path',
"员工",
PATHITEM (
'Path'[path_],
3
),
"经理",
PATHITEM (
'Path'[path_],
2
),
"地区经理",
PATHITEM (
'Path'[path_],
1
)
)
复制


 

小结一下

1. Path函数比较简单,主要使用的场景是在具有层级结构的两列数据中,返回下级的所有上级,并以"|"进行分割,并按从高到低的数序进行排列。


2. 上级的内容必须全部出现在下级中,比如上述图3中的食物,虽然他是最高级,但是还是要必须出现在下级中。

 

其他更详细的内容,可参考以下资料:

https://www.powerbigeek.com/dax-functions-path/?f=1

https://docs.microsoft.com/en-us/dax/path-function-dax

 

文章转载自BISeven,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论