原始数据如下:我们加入用数据透视表生成汽车费报销金额非常不友好,所以我们考虑用父子层级关系
非使用父子层级关系利用数据透视表得到下图,非常不好:
我们想弄成下面这种方式(非常直观),那该如何制作呢?
原始数据如下:
新增计算列
员工层级:
\=PATH(‘打车费记录’[姓名],’打车费记录’[经理])
层级数:
\=PATHLENGTH(‘打车费记录’[员工层级 1])
层级一:
\=PATHITEM(‘打车费记录’[员工层级 1],1)
层级二:
\=IF(PATHITEM(‘打车费记录’[员工层级 1],2)=BLANK(),’打车费记录’[级别一],PATHITEM(‘打车费记录’[员工层级 1],2))
层级三:
\=IF(PATHITEM(‘打车费记录’[员工层级 1],3)=BLANK(),’打车费记录’[级别二],PATHITEM(‘打车费记录’[员工层级 1],3))
去到关系视图创建层级结构
我们去数据透视表,发现三层都是自己,不太好看,优化一下
建立一些辅助度量值,思路是透视的深度和员工层级数作对比
是否被级别一筛选:=ISFILTERED(‘打车费记录’[级别一])
是否被级别二筛选:=ISFILTERED(‘打车费记录’[级别二])
是否被级别三筛选:=ISFILTERED(‘打车费记录’[级别三])
透视深度:=[是否被级别一筛选]+[是否被级别二筛选]+[是否被级别三筛选]
层级深度 的最大值:=MAX([层级深度])
报销的打车费:=IF([数据透视表深度]>[员工结构深度]+1,BLANK(),SUM(‘打车费记录’[打车费]))
报销的打车费为空的话,数据透视表不显示
还有一个小问题就是袁雷下面无员工,不想让其显示
新建计算列
\=IF(COUNTAX(FILTER(‘打车费记录’,’打车费记录’[经理]=EARLIER(‘打车费记录’[姓名])),’打车费记录’[姓名])>0,1,0)
新建度量值
是否带员工 的总和:=SUM([是否带员工])
最终打车报销金额:=if(‘打车费记录’[透视深度]>’打车费记录’[层级深度 的最大值]+1,blank(),if(‘打车费记录’[透视深度]=’打车费记录’[层级深度 的最大值]+1&&’打车费记录’[是否带员工 的总和]=0,blank(),sum(‘打车费记录’[打车费])))