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

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

那么,如何处理图2中的数据,使其还原成图1的结果?
我们可以利用Path函数来由图2转换成图1,Path函数就是今天的主角。
我们利用一下Dax生成一个计算列:
path_ = PATH('Path'[下级], 'Path'[上级])

我们可以观察新列path_, 对于列"下级", path_找到了其所有的上级,并用"|"进行分割。
接下来,我们可以在通过SelecteColumns 和Pathitems 函数生成一张新表:
EVALUATET= 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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




