以前在从事招生工作时,经常需要做各种统计报表,我都喜欢用数据透视表来解决问题。尤其一次在遇到“按考生的分数段来统计各专业的上线人数”以便制定招生计划时,更加体现数据透视表结合函数应用的方便之处。
最初我是利用MS-EXCEL的数据透视表和函数来进行统计,后来发现ET中的函数名及用法与MS-EXCEL中几乎完全一致,因此该方法完全可以直接移植到ET中来进行,并且ET中的编辑栏相比MS-OFFICE2003作了一定的改进,在输入大段内容时十分方便。
一般而言,原始工作表如下所示:
其中的字段非常多,为便于观察,我隐藏多列。
图1
其中当年的成人高考录取分数线为:
一、高中起点本、专科分数线
专科文科135分 专科理科130分
本科文科200分 本科理科200分
二、专科升本科分数线
医学(中医学类、药学类等两个一级学科除外)150分
因此需要统计的条件就有四个:专科文科:135分,专科理科:130分,高中起点文理均为:200分,专升本分数线均为:150分
当时我们需要按层次和科类来实现各专业线下5分及上线人数的统计。数据透视表中的按步长统计功能不能很好实现此效果,故我决定采用建立一辅助列来帮助数据透视表快速完成统计功能,该列取名为:“分数段统计”
图2
分数段统计这列的内容如何快速填充是本次操作的关键,这得靠if和lookup函数来帮忙了。呵呵
if函数的语法简单,最多可以嵌套7层。依次嵌套lookup函数即可。各函数的操作与规则,通常谁也记不完全,往往都是在实际应用时直接翻阅联机帮助文档即可。
在如图2 BR2单元格内编辑函数如下:
=IF(C2&D2="专科文科",LOOKUP(BQ2,{0,130,134},{"<=130","<=134",">=135"}),IF(C2&D2="专科理科",LOOKUP(BQ2,{0,125,129},{"<=125","<=129",">=130"}),IF(C2&D2="专升本医学",LOOKUP(BQ2,{0,145,149},{"<=145","<=149",">=150"}),LOOKUP(BQ2,{0,195,199},{"<=195","<=199",">=200"}))))
此处一共用到:IF函数,LOOKUP函数,&连接字符几个知识点。其原理是:用&连接C和D列中各单元格,得到IF函数中的比较条件。再用LOOKUP函数来实现按层次科类条件去查找然后将生成结果自动填入辅助列对应单元格内。
当我们生成BR列第一个单元格的结果后就可以通过双击单元格填充柄来快速填充整列的值,从而得到图2所示最终效果。
接下来只需将此表作为数据透视表的数据源,然后在数据透视表视图中拖动几下鼠标,就可快速生成最后统计结果如下。是不是非常之方便呢?
/200908/other/用数据透视表结合内置函数实现按分数段快速统计人数.wps