我有很多如下所示的表格:
这些基本上是我做的问卷的答案。它在 A 列(文本格式)中显示可能的答案,在 B 列中给出我给出的答案的代表值(用于计算平均值和中位数,见下面的问题),在 C 列中显示答案的数量。
平均值的计算非常简单=(C2*B2+C3*B3+C4*B4+C5*B5+C6*B6)/SUM(C2:C6)
我无法正确获取中位数。我发现有一个 MEDIAN 函数,但我必须给它的参数数量会随着响应的数量而变化。是否有类似“useXTimes(paramter,x)”的东西可以将参数 x 次提供给函数?然后我可以使用:
=MEDIAN(useXTimes(B1,C1);useXTimes(B2,C2);useXTimes(B3,C3);useXTimes(B4,C4);useXTimes(B5;C5);useXTimes(B6,C6))
并且它将在我的示例中解析并=MEDIAN(1;2;2;3;3;4;4;4;4);
返回3
,这正是我想要的。
总的来说,我对 Excel 公式不是很熟悉,也许还有我没有看到的更简单的解决方案。
答案1
为了找到中位数,我们可以计算百分位数桶并查看第 50 个百分位数在哪里。那就是我们的中位数。
首先,添加总回复数到单元格 C7。公式为=SUM(C2:C6)
。
接下来,在原始工作表中添加三列:
- D 列将保存百分每个答案占总数的百分比。单元格 D2 的公式为
=C2/$C$7
,您可以将其拖至 D6。 - E 列将容纳累计百分比。单元格E2的公式是
=SUM($D$2:D2)
,您可以将其向下拖到E6。 - F 列将用于检查第 50 个百分位数是否落在 E 列相邻单元格的百分位数桶内。单元格 F2 的公式是
=E2>=0.5
,您可以将其拖至 F6。
您的工作表将如下所示:
此时,即使没有 F 列,也很容易看出中位数在哪里。单元格 E4 是 50% 所在的百分位数桶,因此本例中的中位数为 3。
我们可以使用 F 列来查找值“TRUE”的第一次出现,公式如下:=MATCH(TRUE,F2:F6,0)
。本例中的结果为 3,即 F2:F6 范围内“TRUE”的索引。
我们可以使用最后一个公式作为指数来得到实际中位数回答(文本标签)来自 A 列,如下所示:=INDIRECT("A" & (MATCH(TRUE,F2:F6,0)+1))
。将最后一个公式放在工作表的任何位置,本例中的结果将为“中性”。
答案2
尝试使用此公式:
=MEDIAN(REPT(B1:B5,C1:C5))
然后按++Ctrl
因为 它是一个数组公式 Shift
Enter