Microsoft Excel:在函数中输入动态数量的参数

Microsoft Excel:在函数中输入动态数量的参数

我有很多如下所示的表格:

示例表

这些基本上是我做的问卷的答案。它在 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因为 它是一个数组公式 ShiftEnter

相关内容