项目案例概述

本案例是对某公司人力资源系统中导出的人员信息表,利用 Power BI 构建模型分析人员结构,为后续的人力资源优化提供参考

本项目案例使用Power BI制作最终呈现可视化作品如下所示

数据准备

人员信息表(Power BI练习数据集).xlsxhttps://download.csdn.net/download/Hudas/86770377?spm=1001.2014.3001.5503

人员信息表(部分截图)

1.数据清洗

步骤1:启动Power BI Desktop,选择【主页】|【获取数据】|【Excel工作簿】选项

步骤2:打开案例数据所在的文件夹,选择"人员信息表"文件,单击【打开】按钮,导入"人员信息表.xlsx"

步骤3:导航器下选中,单击【加载】按钮,将数据导入Power BI软件中

步骤4:保存文件

在Power BI的左上角单击【文件】选项卡,选择【另存为】指令,选择自定义的存放位置,输入文件名"某公司HR人员结构数据可视化分析Power BI",单击【保存】按钮,此时的文件后缀名默认为.pbix

文件保存后的呈现结果如下所示

步骤5:检查导入的数据有无错误

进入Power Query的路径:单击【转换数据】,即可进入Power Query查询编辑器页面

检查每列的数据类型是否正确

提示Tips:"离职日期"字段如果员工是在职状态,则值为null,不需要进行"删除空行"操作

步骤6:检查无误后,执行【文件】|【关闭并应用】选项,数据即导入到了Power BI中

2.数据建模

步骤1:新建日期表

点击数据视图,选择【表工具】|【新建表】选项

输入公式:日期表 = CALENDARAUTO()

CALENDARAUTO函数新建表,此函数将自动抓取所有日期中的最小日期和最大日期,包含了现有表中的所有日期范围

将日期表中的字段名"Date"修改为"日期"

步骤2:在日期表中进行新建列操作,分别新建三列:年、月、季度

公式如下所示

年 = YEAR('日期表'[日期])

月 = MONTH('日期表'[日期])

季度 = "Q"&FORMAT('日期表'[日期],"Q")

新建列,命名为"年"
新建列,命名为"月"
新建列,命名为" 季度"

在员工信息表中进行新建列操作

出生年份 = YEAR('员工信息'[出生日期])

步骤3:新建度量值"期末在职人数" 

上述度量值公式如下所示

期末在职人数 = CALCULATE(
  DISTINCTCOUNT('员工信息'[员工工号]),
  FILTER(
    FILTER('员工信息','员工信息'[入职日期]<=MAX('日期表'[日期])),
    '员工信息'[离职日期]>MAX('日期表'[日期])||'员工信息'[离职日期]=BLANK() 
     )
)

DAX公式解析

1.CALCULATE + DISTINCTCOUNT对所有员工进行非重复计数,统计的是所有的人数

2.内层FILTER函数对员工信息表进行筛选

3.外层FILTER函数是对内层FILTER函数筛选的范围再次筛选

提示Tips:FILTER函数返回的是一张经过筛选后的虚拟表

步骤4:在员工信息表中,新建度量值"期间新入职人数"

上述度量值公式如下所示

期间新入职人数 = CALCULATE(
  DISTINCTCOUNT('员工信息'[员工工号]),
  FILTER(
    FILTER('员工信息','员工信息'[入职日期]<=MAX('日期表'[日期])&&'员工信息'[入职日期]>=MIN('日期表'[日期])
    ),
     '员工信息'[离职日期]>MAX('日期表'[日期])||'员工信息'[离职日期]=BLANK() 
     )
)

步骤5:在员工信息表中,新建度量值"30岁以下员工占比"

上述度量值公式如下所示

30岁以下员工占比 = 
VAR DOWN30 =
    CALCULATE(
        [期末在职人数],
        FILTER(
            ALLSELECTED('员工信息'),  // 这里使用整个表而不是单个列
            YEAR(TODAY()) - YEAR('员工信息'[出生日期]) < 30
        )
    )
VAR TOTALALL =
    CALCULATE(
        [期末在职人数],
        ALLSELECTED('员工信息')  // 同样使用整个表
    )
RETURN
    DIVIDE(DOWN30, TOTALALL, 0)  // 增加0作为除数为0时的默认返回值

DAX公式解析

1. 30岁以下员工占比,即分别要求30岁以下员工总数(不包含30岁)和总人数

2. 30岁以下员工人数,使用FILTER函数筛选

3.数据可视化

步骤1:制作年份、季度切片器

制作年份切片器,字段为日期表中的年份,在页面筛选器中设置年份"大于或等于2016",单击"应用筛选器",显示最近的年份即可

制作季度切片器,字段为日期表中的季度

步骤2:制作卡片图

制作"期间新入职人数"卡片图

制作"30岁以下员工占比"卡片图

其中,将度量值"30岁以下员工占比"数值以百分比形式显示

制作"期末在职人数"

步骤3:制作各部门在职人数条形图

步骤4:制作环形图

制作3个环形图,分别按性别、部门、文化程度展示

在职比例(按性别)环形图
在职比例(按部门)环形图
在职比例(按文化程度)环形图

步骤5:制作月度在职人数变化趋势图

选择"折线和簇状柱形图",字段设置如下所示

步骤6:组合调整可视化分析仪表盘

插入文本框,输入标题"HR人员结构数据可视化分析",调整字体大小

将制作好的可视化图表组合在一起排版,调整页面和边框对齐,最终结构如下图所示

项目文件

某公司HR人员结构数据可视化分析.pbixhttps://download.csdn.net/download/Hudas/92073287

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐