0

问这个问题我感到有点尴尬,但这里是:

我正在使用 Excel 2010,并且我有一个包含 700 多个客户满意度调查回复的工作表。每行是一项调查,对 5 个问题的回答为 1-5 或 NA。它如下所示:

+-Agent--+--Q1--+--Q2--+--Q3--+
|        |      |      |      |
| Jeff   |  5   |  5   |  5   |
+--------+------+------+------+
| James  |  1   |  1   |  1   |
+--------+------+------+------+
| Jack   |  5   |  5   |  5   |
+--------+------+------+------+
| Jeff   |  3   |  NA  |  5   |
+--------+------+------+------+
| Jeff   |  NA  |  NA  |  3   |
+--------+------+------+------+
| James  |  5   |  5   |  5   |
+--------+------+------+------+
| ...    |  ... |  ... |  ... |
+--------+------+------+------+

我想创建一个工作表,列出 A 列中的每个代理以及所有回答的问题的平均值。我尝试了一个公式,比如AVERAGEIF(SurveyResponses!A2:A7,A2,SurveyResponses!B2:D7)where A2contains the agent's name,但它似乎无法正常工作。

例如,我得到一些代理的平均值 5.00,而它应该是 4.61。当我查看此人的 AVERAGEIF 的函数参数屏幕时,它看起来可以正确识别这些值。Average_rage 显示{"NA","NA","NA","NA",1;5,5,5,5,5;5,...,但低于该值的返回值表明= 5这是不正确的,因为存在1.

谁能指导我正确的方向?

4

2 回答 2

2

AVERAGEIF像这样工作SUMIF,使用的第二个范围实际上与第一个范围的大小和形状相同,从左上角的单元格开始,所以当你使用这个

=AVERAGEIF(SurveyResponses!A2:A7,A2,SurveyResponses!B2:D7)

因为第一个范围是单列,所以使用的第二个范围也必须是(单元格之间存在 1 对 1 的关系)所以因为 SurveyResponses!B2:D7 中的左上角单元格是 SurveyResponses!B2 范围从那里开始并且是与 SurveyResponses 相同的大小和形状!A2:A7

....所以你实际上得到了这个....

=AVERAGEIF(SurveyResponses!A2:A7,A2,SurveyResponses! B2:B7)

AVERAGEIF 帮助确实告诉你,但不是很清楚

如果您希望范围的大小不同,则需要这样的“数组公式”

=AVERAGE(IF(SurveyResponses!A2:A7=A2,SurveyResponses!B2:D7))

您需要确认,CTRL+SHIFT+ENTER以便在公式栏中的公式周围出现花括号。该公式会将任何空白视为零,但会忽略诸如 NA 之类的文本值

于 2012-08-10T20:00:42.150 回答
0

最简单的方法是使用数据透视表。它们看起来很吓人,但它们相当容易使用。行 = 名称,列 = Q,答案的平均值。

于 2012-08-10T19:21:17.787 回答