HR们在月底或者月初的时候有一项人事报表统计项要做,对本月度人员的年龄、学历、司龄、性别等进行监控,通常情况下一般的HR要花费好长的时间才能完成这项统计。

如下图,是某零售公司的一个员工花名册,已删除其他不用的项目:


现在要实现的结果如下图:


要求:

对性别、学历、司龄、年龄进行人数统计,其中:

性别分别为“男”与“女”;

学历为本科及以上、大专、大专以下;

年龄的分段为:25岁以下、25<=N<40、40<=N<50、50岁以上(含);

司龄的分段为:3年以内、3<=N<5、5<=N<10、10<=N<15、15<=N<20、20年以上(含)。


那么这类问题第一位应该想到的应该就是使用数据透视表的方法,但是数据透视表对于数据源的要求是一维数据,如果要生成上述的结果的样式,就要对数据源进行转一维数据处理,比较麻烦,容易出错;另外如果要进行常规的数据透视表统计,那么要分别进行三次数据透视表的设置,如果数据源更改,也要重复设置三次,费时费事。


那么对于这种情况采取的措施为:使用OLE DB的方式,在使用SQL的情况下生成数据透视表的一维数据源,具体操作如下:


步骤1 依次单击【数据】-【现有连接】,在弹出的对话框中选择【浏览更多】,然后找到源文件“5月人事报表”,然后单击【打开】。如下图:


步骤2 在弹出的对话框中选择"Sheet1#34;,然后单击【确定】。



步骤3 在弹出的对话框中【数据透视表】,然后单击【属性】。


步骤4 在弹出的对话框中选择【定义】,然后在【命令文本】里输入SQL语句,然后单击【确定】,在弹出的对话框中继续单击【确定】。如下图:

SQL语句为:


步骤5 在弹出的数据透视表视图中进行如下设置,同一般的数据透视表的设置:


最后进行设置美化即可完成对人事报表的统计。


优点:

1、可以不用打开源文件而直接进行统计;

2、如果源文件中的数据进行修改或者更新,只需刷新即可;

3、如果数据量大,可防止Excel的假死;

4、SQL语句的执行效率快,且易于维护,同时在源数据中不做任何修改也不增加辅助列,对源数据的表结构不造成任何的损坏。