Power BI HR 分析仪表板:劳动力智能指南
人员是组织最大的成本和最有价值的资产,但大多数人力资源部门使用直觉、轶事和滞后的电子表格报告来做出关键决策——招聘、薪酬、重组、福利。 Power BI 通过在单一交互式平台中可视化员工动态、流失模式、多样性进展、薪酬公平、招聘效率和敬业度趋势,将人力资源数据转化为劳动力智能。
从人力资源报告(发生了什么)到人员分析(为什么会发生以及如何处理)的转变是对问题做出反应的人力资源职能与预防问题的人力资源职能之间的区别。当您发现每年第一季度工程人员流失率激增,特定经理团队的流动率是同行的 3 倍,或者在任期 3 年期间女性员工的离职率高于男性员工时,您可以在下次离职之前进行干预。
本指南涵盖了 Power BI 中 HR 分析仪表板的完整架构,包括数据模型、基本 DAX 度量、每个分析领域的可视化设计以及敏感劳动力数据的实施注意事项。
要点
- 人力资源分析需要一个数据模型来捕获时间点快照(人数)和基于事件的记录(雇用、解雇、晋升),以进行准确的趋势分析
- 流失率必须使用正确的分母计算——该期间的平均人数,而不是开始或结束人数
- 多样性指标需要交叉分析(不仅仅是性别或种族独立分析)来揭示有意义的差异
- 薪酬分析需要基于回归的薪酬公平模型,而不是简单的平均值 --- Power BI 可以可视化输出,Python/R 集成可以构建模型
- 招聘渠道分析跟踪每次招聘的成本、填补时间、资源有效性和招聘质量,以优化人才获取支出
- 员工敬业度分数是人员流失的主要指标 --- 跟踪员工敬业度分数和营业额,以建立预测能力
HR 分析的数据模型
核心表
人力资源分析数据模型不同于财务或销售模型,因为劳动力数据具有库存(时间点计数)和流量(基于事件的变化)特征。
员工维度 (DimEmployee)。 包含当前员工属性的中央维度表。关键列包括 EmployeeID、FullName、Department、Team、JobTitle、JobLevel(个人贡献者、经理、总监、VP、C-Suite)、经理(直接经理的 EmployeeID)、HireDate、TerminationDate(在职员工为空)、Location、Country、Gender、Ethnicity、AgeGroup、TenureBand(小于 1 年、1--3 年、3--5 年、5--10 年、 10 年以上)、EmploymentType(全职、兼职、承包商)、IsActive(布尔值)、BaseSalary、TotalCompensation、CompaRatio(工资除以市场中点)和 PerformanceRating(最新)。
员工总数快照事实表 (FactHeadcountSnapshot)。 按部门、位置和人口统计属性划分的每月员工总数快照。每行代表月末的人数。列包括 SnapshotDate、部门、位置、性别、种族、ActiveCount 和 FTECount。由于员工维度仅反映当前状态,因此可以通过快照进行准确的历史趋势分析。
事件事实表 (FactHREvent)。 记录每个重要的 HR 事件。列包括EventID、EmployeeID、EventDate、EventType(雇用、终止、晋升、调动、薪资变动、缺勤)、FromValue(例如,以前的部门、以前的工资)、ToValue(例如,新部门、新工资)和Reason(辞职原因、晋升原因、调动原因)。
招聘事实表 (FactRecruitment)。 跟踪从职位发布到录用接受的招聘流程。列包括 RequisitionID、PostingDate、Department、JobTitle、Source(工作委员会、推荐、机构、职业页面)、ApplicationDate、CandidateName、StageID(已申请、电话筛选、面试、Offer、已接受、已拒绝、已撤回)、StageDate、HireDate 和 CostIncurred。
调查事实表 (FactSurvey)。 员工敬业度和满意度调查回复。列包括 SurveyID、EmployeeID、SurveyDate、QuestionCategory(参与度、满意度、经理、成长、文化)、分数(1--5 或 1--10)和 IsAnonymous。
日期维度 (DimDate)。 标准日期表在所有支持会计日历的事实表之间共享。
员工人数趋势
积极的员工人数措施
Active Headcount =
CALCULATE(
COUNTROWS(DimEmployee),
DimEmployee[IsActive] = TRUE()
)
Headcount End of Period =
CALCULATE(
MAX(FactHeadcountSnapshot[ActiveCount]),
FILTER(
FactHeadcountSnapshot,
FactHeadcountSnapshot[SnapshotDate] = MAX(DimDate[Date])
)
)
FTE Count =
CALCULATE(
SUM(FactHeadcountSnapshot[FTECount]),
FILTER(
FactHeadcountSnapshot,
FactHeadcountSnapshot[SnapshotDate] = MAX(DimDate[Date])
)
)
New Hires (Period) =
CALCULATE(
COUNTROWS(FactHREvent),
FactHREvent[EventType] = "Hire"
)
Terminations (Period) =
CALCULATE(
COUNTROWS(FactHREvent),
FactHREvent[EventType] = "Termination"
)
Net Headcount Change = [New Hires (Period)] - [Terminations (Period)]
员工人数可视化
面积图显示 24 个月内的每月员工人数,聘用人员堆积在零线上方,解雇人员堆积在零线下方。这种瀑布式视图揭示了增长轨迹以及招聘与保留的相对贡献。
部门细分 使用堆积条形图显示一段时间内按部门划分的员工人数。这揭示了哪些部门正在增长、收缩或稳定。
按地点统计的员工人数在地图上显示劳动力地理分布。气泡大小代表人数。颜色可以代表生长速度(绿色表示生长位置,红色表示收缩位置)。
流失分析
流失率计算
流失率公式看似简单,但错误的计算是最常见的人力资源分析错误之一。
Average Headcount =
(
CALCULATE(MAX(FactHeadcountSnapshot[ActiveCount]),
FILTER(FactHeadcountSnapshot,
FactHeadcountSnapshot[SnapshotDate] = MIN(DimDate[Date])
)
) +
CALCULATE(MAX(FactHeadcountSnapshot[ActiveCount]),
FILTER(FactHeadcountSnapshot,
FactHeadcountSnapshot[SnapshotDate] = MAX(DimDate[Date])
)
)
) / 2
Attrition Rate =
DIVIDE([Terminations (Period)], [Average Headcount], 0)
Annualized Attrition Rate =
VAR MonthsInPeriod =
DATEDIFF(MIN(DimDate[Date]), MAX(DimDate[Date]), MONTH) + 1
RETURN
(1 - POWER(1 - [Attrition Rate], 12 / MonthsInPeriod))
Voluntary Attrition Rate =
DIVIDE(
CALCULATE(
COUNTROWS(FactHREvent),
FactHREvent[EventType] = "Termination",
FactHREvent[Reason] IN {"Resignation", "Retirement", "Personal Reasons"}
),
[Average Headcount],
0
)
Involuntary Attrition Rate =
DIVIDE(
CALCULATE(
COUNTROWS(FactHREvent),
FactHREvent[EventType] = "Termination",
FactHREvent[Reason] IN {"Performance", "Restructuring", "Misconduct"}
),
[Average Headcount],
0
)
损耗深度可视化
按部门划分使用按比率排序的条形图(从最高到最低)。突出显示比率高于组织平均水平的部门。这会立即识别出问题点。
使用柱形图按任期级别划分的流失。常见模式包括第一年流动率较高(入职失败)、2--3 年流动率激增(职业发展受挫)或 5 年以上流动率增加(倦怠或停滞)。
经理的流失是最敏感但往往也是最可操作的观点。一张显示每位经理的团队规模、终止和流失率的表格显示,一些经理始终保留人才,而另一些经理则始终失去人才。深思熟虑地应用此分析,将其用于指导和支持,而不是惩罚性行动。
流失热图 将部门和月份结合到轴上,并以流失率作为颜色强度。这揭示了季节性模式(辞职通常在一月份奖金发放后和九月份孩子重返学校时激增)。
原因分析 使用圆环图或树形图显示终止原因的分布。对于自愿离职,原因可能包括更好的机会、薪酬、工作与生活平衡、经理关系、职业发展、搬迁和退休。
生存分析
生存曲线显示员工在每个任期里程碑时留在组织的概率。通过计算 6 个月、1 年、2 年、3 年和 5 年的保留率来构建此值。
Retention Rate at 1 Year =
DIVIDE(
CALCULATE(
COUNTROWS(DimEmployee),
DATEDIFF(DimEmployee[HireDate], TODAY(), MONTH) >= 12,
OR(DimEmployee[IsActive] = TRUE(),
DATEDIFF(DimEmployee[HireDate], DimEmployee[TerminationDate], MONTH) >= 12)
),
CALCULATE(
COUNTROWS(DimEmployee),
DATEDIFF(DimEmployee[HireDate], TODAY(), MONTH) >= 12
),
0
)
按部门、职位级别或雇用来源细分生存曲线,以确定哪些人群最稳定和最不稳定。
多样性和包容性指标
表示仪表板
多样性指标需要精心设计,既要提供信息又要尊重他人。显示汇总数据,而不是个人层面的人口统计详细信息。
性别代表性 使用堆积条形图显示按部门和职位级别划分的性别分布。关键的见解不是总体性别平衡,而是高层的代表性是否发生变化(“破碎的梯级”或“玻璃天花板”分析)。
种族代表使用类似的堆叠条。将您组织的人口统计数据与您所在地区和行业的相关劳动力市场基准进行比较。
Gender Ratio (Female) =
DIVIDE(
CALCULATE(COUNTROWS(DimEmployee), DimEmployee[Gender] = "Female", DimEmployee[IsActive] = TRUE()),
CALCULATE(COUNTROWS(DimEmployee), DimEmployee[IsActive] = TRUE()),
0
)
Diversity Index =
-- Simpson's Diversity Index: probability that two randomly selected employees are from different groups
1 - SUMX(
VALUES(DimEmployee[Ethnicity]),
VAR GroupCount = CALCULATE(COUNTROWS(DimEmployee), DimEmployee[IsActive] = TRUE())
VAR TotalCount = CALCULATE(COUNTROWS(DimEmployee), DimEmployee[IsActive] = TRUE(), ALL(DimEmployee[Ethnicity]))
RETURN POWER(DIVIDE(GroupCount, TotalCount, 0), 2)
)
交叉分析
仅进行总体性别或种族分析就可以掩盖差异。交叉分析检查组合——例如,工程领域女性与男性的流失率,或者经理级别代表性不足的少数群体与非少数群体的晋升率。
使用行上的人口统计属性和列上的指标(流失率、晋升率、平均任期、平均薪酬)构建矩阵视觉效果。条件格式突出显示统计上显着的差异。
多元化管道
跟踪员工生命周期每个阶段的多样性。属于每个人口群体的申请人、受访者、录用、聘用、晋升和解雇的百分比是多少?显示这些百分比的漏斗揭示了多样性丧失的地方。如果您的申请者中有 45% 是女性,但您的聘用率是 30% 是女性,那么筛选或面试过程可能存在值得调查的偏见。
薪酬分析
薪酬股权概述
Average Salary =
CALCULATE(
AVERAGE(DimEmployee[BaseSalary]),
DimEmployee[IsActive] = TRUE()
)
Average Total Comp =
CALCULATE(
AVERAGE(DimEmployee[TotalCompensation]),
DimEmployee[IsActive] = TRUE()
)
Compa-Ratio Average =
CALCULATE(
AVERAGE(DimEmployee[CompaRatio]),
DimEmployee[IsActive] = TRUE()
)
Salary Range Penetration =
-- How far through the salary range the employee has progressed
DIVIDE(
AVERAGE(DimEmployee[BaseSalary]) - MIN(DimPayBand[RangeMinimum]),
MAX(DimPayBand[RangeMaximum]) - MIN(DimPayBand[RangeMinimum]),
0
)
薪酬差距分析
薪酬差距分析比较不同人口群体的薪酬。原始(未经调整)工资差距与平均工资进行比较。调整后的薪酬差距控制了合法因素(职位级别、任期、绩效、地点),并揭示了潜在偏见造成的剩余差距。
Power BI 可以可视化基于回归的薪酬公平分析的输出。回归模型本身通常是用 Python、R 或专用的薪酬分析工具构建的。将模型结果(预测薪资、实际薪资、残差)导入Power BI。
可视化: 散点图,X 轴为预测薪资,Y 轴为实际薪资,按人口统计群体着色。对角线以上的点支付高于模型预测的金额;以下点数的报酬较少。线下方特定人口群体的集群表明潜在的薪酬不平等。
薪酬分配
箱线图或小提琴图显示按部门和职位级别划分的薪资分配。这些揭示了薪酬是紧密聚集的(一致的薪酬实践)还是广泛分布的(潜在的不一致)。异常值可能表明保留风险(薪酬过低)或薪酬过高的情况。
招聘漏斗分析
漏斗指标
Applications =
CALCULATE(
COUNTROWS(FactRecruitment),
FactRecruitment[StageID] = "Applied"
)
Screen Rate =
DIVIDE(
CALCULATE(COUNTROWS(FactRecruitment), FactRecruitment[StageID] = "Phone Screen"),
[Applications],
0
)
Interview Rate =
DIVIDE(
CALCULATE(COUNTROWS(FactRecruitment), FactRecruitment[StageID] = "Interview"),
CALCULATE(COUNTROWS(FactRecruitment), FactRecruitment[StageID] = "Phone Screen"),
0
)
Offer Rate =
DIVIDE(
CALCULATE(COUNTROWS(FactRecruitment), FactRecruitment[StageID] = "Offer"),
CALCULATE(COUNTROWS(FactRecruitment), FactRecruitment[StageID] = "Interview"),
0
)
Offer Acceptance Rate =
DIVIDE(
CALCULATE(COUNTROWS(FactRecruitment), FactRecruitment[StageID] = "Accepted"),
CALCULATE(COUNTROWS(FactRecruitment), FactRecruitment[StageID] = "Offer"),
0
)
Time to Fill =
AVERAGEX(
FILTER(FactRecruitment, FactRecruitment[StageID] = "Accepted"),
DATEDIFF(FactRecruitment[PostingDate], FactRecruitment[HireDate], DAY)
)
Cost per Hire =
DIVIDE(
SUM(FactRecruitment[CostIncurred]),
CALCULATE(COUNTROWS(FactRecruitment), FactRecruitment[StageID] = "Accepted"),
0
)
来源有效性
矩阵视觉显示每个招聘来源(LinkedIn、Indeed、推荐、代理机构、职业页面、大学),其中包括申请、招聘、每次招聘成本、填补时间和一年保留率列,揭示了哪些来源最有效地提供最优秀的人才。
招聘质量是最终的招聘指标。通过跟踪每个来源的员工的绩效评级、晋升率和保留率来衡量它。提供廉价、快速且一年内离职员工的人才来源,其价值不如培养长期高绩效人才的昂贵人才来源。
招聘仪表板布局
招聘页面应具有漏斗可视化功能,显示阶段之间的转化率、开放申请的 KPI 卡、平均填补时间、每次雇用成本和聘用接受率、来源有效性表以及显示随时间变化的招聘量的趋势线,并根据开放申请和历史填充率进行预测。
参与度和满意度
调查分析
Average Engagement Score =
CALCULATE(
AVERAGE(FactSurvey[Score]),
FactSurvey[QuestionCategory] = "Engagement"
)
eNPS =
-- Employee Net Promoter Score
VAR Promoters =
CALCULATE(COUNTROWS(FactSurvey), FactSurvey[Score] >= 9, FactSurvey[QuestionCategory] = "Engagement")
VAR Detractors =
CALCULATE(COUNTROWS(FactSurvey), FactSurvey[Score] <= 6, FactSurvey[QuestionCategory] = "Engagement")
VAR Total =
CALCULATE(COUNTROWS(FactSurvey), FactSurvey[QuestionCategory] = "Engagement")
RETURN
DIVIDE(Promoters - Detractors, Total, 0) * 100
参与度-流失相关性
人员分析中最有力的分析是参与度分数与后续流失之间的关系。构建一个可视化效果,显示部门或团队,其中一个轴为敬业度得分,另一轴为后续季度的流失率。强烈的负相关性证实了敬业度调查可以预测人员流动率,使敬业度成为人力资源部门在人员流失发生之前可以采取行动的领先指标。
调查趋势分析
跟踪多个调查管理的参与度分数(季度或年度)。显示类别级别趋势(敬业度、经理关系、成长机会、薪酬满意度、文化)的折线图揭示了员工体验的哪些方面正在改善或恶化。
数据隐私和安全
敏感数据处理
人力资源数据是任何组织中最敏感的数据之一。实施强有力的安全措施。
行级安全性限制组织单位的数据访问。人力资源业务合作伙伴只能看到其指定的部门。高管们看到他们的报告层次结构。 CHRO 和人力资源分析团队了解一切。使用财务仪表板指南中描述的相同模式实施 RLS,并使用将用户身份连接到组织单位的安全映射表。
聚合阈值。 切勿显示少于 5 名员工的群体的人口统计数据。显示“财务部门中亚洲类别的 1 名员工”的多元化细分可有效识别个人。制定抑制小团体的 DAX 措施。
Suppressed Count =
VAR RawCount = COUNTROWS(DimEmployee)
RETURN IF(RawCount < 5, BLANK(), RawCount)
数据分类。 在 Power BI 服务中将仪表板标记为机密。限制导出和下载权限。定期审核访问日志。
常见问题
哪些 HRIS 系统与 Power BI 集成良好?
Workday、SAP SuccessFactors、BambooHR、ADP、UKG(Ultimate Kronos Group)和 Oracle HCM Cloud 都通过 API、数据导出或专用连接器提供 Power BI 集成选项。对于使用基于电子表格的 HR 记录的小型组织,Power BI 直接连接到 Excel 文件或 Google Sheets。最可靠的方法是每天将 HRIS 数据提取到数据仓库(Azure SQL、Snowflake)中,然后将 Power BI 连接到该仓库。
如何处理部门间调动的员工?
使用事件事实表将传输作为离散事件进行跟踪。员工总数快照表捕获每个时间点的正确部门分配。按部门计算员工流失率时,决定是否将员工流失归因于员工离开的部门或终止时所在的部门。行业标准是终止时的部门标准。
什么是健康的员工流失率?
行业平均水平差异很大。科技公司每年的自愿离职率通常为 15--20%。医疗保健和零售业占 20--30%。政府和教育占5--10%。一个有用的基准是将您的费率与您的特定行业和地理位置进行比较。比绝对率更重要的是趋势方向以及流失是否集中在高绩效员工身上还是均匀分布。
Power BI 可以预测员工流失吗?
Power BI 可以可视化预测模型生成的人员流失风险评分,但预测本身最好使用 Python (scikit-learn)、R 或 Azure 机器学习构建。典型的预测特征包括任期、近期绩效评级变化、相对于市场的薪酬、经理任期、通勤距离和敬业度调查得分。该模型输出每个员工的风险评分,Power BI 将其显示为风险热图或排序列表,供 HR 采取行动。
HR 仪表板应该多久刷新一次?
对于大多数人力资源指标来说,每周刷新就足够了。员工人数、人员流失和多样性数据不会每分钟发生变化。招聘仪表板受益于活跃招聘期间的每日刷新。每次调查管理后,参与度仪表板都会刷新。重组或并购活动期间的劳动力规划是例外,可能需要每日甚至实时的员工人数可视性。
如何确保遵守数据隐私法规(GDPR、CCPA)?
实现数据最小化——仅包含分析所需的数据字段。严格应用 RLS,以便只有授权人员才能访问敏感数据。聚集小团体以防止个体识别。记录您的数据处理目的和法律依据。在 Power BI 服务中启用审核日志记录以跟踪访问仪表板的人员和时间。对于受 GDPR 约束的组织,请确保员工同意涵盖分析使用或处理属于合法利益并采取适当的保护措施。
专业人力资源分析开发
劳动力分析将人力资源从成本中心转变为战略职能。但是,构建人力资源领导者信任的仪表板来做出敏感的劳动力决策需要 Power BI 和人力资本指标方面的专业知识。
ECOSIRE 的 Power BI 服务 包括用于人力资源和人员分析的仪表板开发、用于复杂 HRIS 集成的数据建模,以及用于组织构建其第一个人员分析能力的实施服务。
人员分析并不是用算法取代人类判断。它旨在为人力资源领导者提供证据基础,以便更快地做出更好的决策。当员工流失风险在辞职信送达之前就已显现出来时,当薪酬公平差距在引发诉讼之前得到量化时,当敬业度趋势在成为文化危机之前得到跟踪时,人力资源职能就会从被动转向战略。这种转变从正确的仪表板开始。
作者
ECOSIRE TeamTechnical Writing
The ECOSIRE technical writing team covers Odoo ERP, Shopify eCommerce, AI agents, Power BI analytics, GoHighLevel automation, and enterprise software best practices. Our guides help businesses make informed technology decisions.
相关文章
商业智能数据仓库:架构与实施
为商业智能构建现代数据仓库。比较 Snowflake、BigQuery、Redshift,学习 ETL/ELT、维度建模和 Power BI 集成。
Odoo Planning:资源调度和轮班管理指南
掌握 Odoo 19 规划,包括班次模板、开放班次、员工可用性、冲突检测和劳动力管理的移动调度。
Power BI 客户分析:RFM 细分和终身价值
使用 DAX 公式在 Power BI 中实施 RFM 细分、群组分析、流失预测可视化、CLV 计算和客户旅程映射。