信息分析03:Excel的countifs和sumifs函数
1、数据还是9个酒店的200条评论数据。通过Excel的数据透视表可以轻松制作列联表(crosstable),如何用Excel函数实现呢,主要是countifs函数。
countif函数只有1个条件,countifs可以设置多个条件。
2、(1)countifs的第1组条件,在“旅行动机”中查找
在单元格【W3】输入函数【=COUNTIFS($T$2:$T$201,$V3)】
其中的【$T$2:$T$201】是旅行动机变量的范围,总要使用,绝对引用
【$V3】是需要查找的旅行动机(列联表的行标签),因为是一列数据,所以列号前面加上$,这是混合引用。
关于引用的问题,参见笔者其它文章
函数编辑没有结束,后面要设置【列标签】
3、(2)countifs的第2组条件,在“评论来源”中查找
在上一步的基础上,单元格【W3】中的函数拓展为【=COUNTIFS($T$2:$T$201,$V3)】
=COUNTIFS($T$2:$T$201,$V3,$I$2:$I$201,W$2)
相当于=COUNTIFS(第1个范围,第1个条件, 第2个范围,第2个条件)
(3)拖拽函数
移动鼠标光标到单元格【W3】的右下角,当光标呈现为黑色小十字时,按住鼠标左键,拖拽到【X9】。
实施的效果与数据透视表相同。
使用绝对引用、相对引用、混合引用的目的就是为了拖拽复制函数。
4、更为复杂的例子
既然excel的数据透视表可以快速解决,为什么要研究使用函数的解决方案呢?下面就是一个更加复杂一点的例子,其实可以做比这个例子还要复杂的统计。
就是统计每个酒店,每年各种旅行动机的评论数量。
1、使用sumifs根据条件求和。
可以看到sumifs与countifs非常接近
只是,第1个参数要设定对那个区域求和
之后各个参数与countif完全一样,1个区域,跟着1个条件
2、用sumifs的结果除以countifs的结果,就是平均分