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