我有一个员工表,显示员工编号、姓名和经理的员工编号。我正在尝试使用 Dax 创建一个查询,在 Power BI 中显示员工姓名、员工#、经理姓名和经理雇佣日期。
表格如下所示:
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
7839 KING PRESIDENT - 17-NOV-81 5000 - 10
7698 BLAKE MANAGER 7839 01-MAY-81 2850 - 30
7782 CLARK MANAGER 7839 09-JUN-81 2450 - 10
7566 JONES MANAGER 7839 02-APR-81 2975 - 20
7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30
7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30
7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30
7900 JAMES CLERK 7698 03-DEC-81 950 - 30
7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
7902 FORD ANALYST 7566 03-DEC-81 3000 - 20
我尝试合并为新选项并尝试了此操作,但没有成功。有人可以帮忙吗?
您可以使用计算列来获取 MGR NAME 和 MGR HIREDATE。为此,你可以尝试这样的事情:
MGR NAME =
VAR __mgr = 'Table'[MGR] // Insert your table name instead of 'Table'
RETURN
CALCULATE(MAX('Table'[ENAME]), FILTER('Table',__mgr = 'Table'[EMPNO]))
此计算列使用
VAR __mgr = 'Table'[MGR]
存储当前行上下文,然后使用相同的行上下文来获取您需要的数据。
希望有帮助。
在您的情况下,您需要 2 个计算列,我建议您以更合适的方式对数据进行建模:
ManagerName =
IF (
ISBLANK(Employees[MGR ]),
BLANK(),
LOOKUPVALUE(Employees[ENAME], Employees[EMPNO], Employees[MGR ])
)
然后:
ManagerHireDate =
IF (
ISBLANK(Employees[MGR ]),
BLANK(),
LOOKUPVALUE(Employees[HIREDATE],Employees[EMPNO],Employees[MGR])
)