如何在Power BI中使用DAX获取员工及对应经理的姓名与入职日期
在Power BI中用DAX实现员工与经理信息关联
假设你的员工表名为Employees,以下两种方法可以实现需求:
方法一:通过自关联关系+DAX计算表
- 进入「数据」视图,复制员工表(拖到关系视图空白处生成副本,命名为
Managers) - 在关系视图中,将
Employees[MGR]与Managers[EMPNO]建立一对多关系(Employees为多端,Managers为一端) - 创建计算表:
员工经理信息表 = SELECTCOLUMNS( Employees, "员工编号", Employees[EMPNO], "员工姓名", Employees[ENAME], "经理姓名", RELATED(Managers[ENAME]), "经理入职日期", RELATED(Managers[HIREDATE]) )
方法二:直接使用LOOKUPVALUE创建计算表(无需额外建表)
适合不想创建副本表的场景,同时处理无经理的员工(如KING):
员工经理信息表 = SELECTCOLUMNS( Employees, "员工编号", Employees[EMPNO], "员工姓名", Employees[ENAME], "经理姓名", IF( Employees[MGR] <> "-", LOOKUPVALUE(Employees[ENAME], Employees[EMPNO], Employees[MGR]), "无经理" ), "经理入职日期", IF( Employees[MGR] <> "-", LOOKUPVALUE(Employees[HIREDATE], Employees[EMPNO], Employees[MGR]), BLANK() ) )
常见问题排查
如果之前「合并为新表」操作失败,大概率是关联字段数据类型不匹配:
- 检查
EMPNO和MGR字段的数据类型(比如一个是数字,一个是文本),统一为相同类型后再尝试合并或使用上述DAX方案。
内容的提问来源于stack exchange,提问作者Shreyas Pagey
相关产品推荐
相关产品推荐

