如何在Tableau中创建计算字段,筛选与经理同地点的员工
解决方案:标记与经理同地点的员工
首先将原始数据整理为Markdown表格:
| 员工ID | 经理员工ID | 地点 |
|---|---|---|
| 1 | 5 | New York |
| 2 | 5 | London |
| 3 | 6 | Miami |
| 4 | 6 | London |
| 5 | New York | |
| 6 | London |
以下是两种常见场景的实现方式:
1. SQL 实现(数据库层面)
通过自连接将员工表与经理数据关联,比较两者地点:
SELECT e.`Employee ID` AS 员工ID, e.`Manager Employee ID` AS 经理员工ID, e.Location AS 员工地点, m.Location AS 经理地点, CASE WHEN e.Location = m.Location THEN '符合' WHEN e.`Manager Employee ID` IS NULL THEN '无经理' ELSE '不符合' END AS 是否与经理同地点 FROM employees e LEFT JOIN employees m ON e.`Manager Employee ID` = m.`Employee ID`;
执行后会返回包含判断结果的数据集,其中员工1和4会被标记为"符合",员工2、3标记为"不符合",员工5、6标记为"无经理"。
2. BI工具(以Tableau为例)计算字段实现
在Tableau中创建计算字段,使用LOD表达式获取对应经理的地点并比较:
计算字段名称:是否与经理同地点
IF ISNULL([Manager Employee ID]) THEN '无经理' ELSEIF [Location] = {FIXED [Manager Employee ID] : ATTR([Location])} THEN '符合' ELSE '不符合' END
{FIXED [Manager Employee ID] : ATTR([Location])}:固定每个经理ID,获取其对应的唯一地点- 逻辑判断:先处理无经理的情况,再比较员工与经理的地点,返回对应结果
将该计算字段拖入视图即可看到每个员工的判断状态。
内容的提问来源于stack exchange,提问作者harcot
相关产品推荐
相关产品推荐

