Excel - 计算四分位数和中位数以在给定值和计数列表的情况下生成箱线图

Excel - calculate quartile and median to generate box plot given a list of values and counts

我有一个相当简单的任务要完成,但我不确定如何在 excel 中完成。

我有一个值列表和每个值的计数(我的变量是离散的)。我正在尝试根据我的计数计算变量的第一和第三四分位数。整个数据集太大,无法以原始格式放入 excel,因此我使用值计数矩阵。

示例:

Value | Count
1 | 100000
2 | 300000
3 | 350000
4 | 100000
5 | 50000
6 | 1000
7 | 10

我需要从这个数据集中生成第一个、第三个四分位数和中位数,但据我所知 excel 的四分位数只接受原始值,不接受值及其计数。

我认为仅使用公式是不可能的。您可以轻松创建具有单独列表的公式,以避免总行数多于 excel 行的问题,但我不知道有什么方法可以将这些列表附加到函数内部的一个大列表中。也许其他人知道一种方法,但与此同时 Excel:

中还有另一种方法

你可以使用的是power query和power pivot。您从您拥有的 table 开始并将其添加到查询(数据 - "Get & Transform Data" 部分 - "From Table/Range"。我有 Excel 2016,所以如果你有不同的版本路径很可能不同,或者在旧版本中这些工具不可用)

现在编辑查询并使用 List.Repeat 添加另一列以创建完整的数据集,扩展值并加载到数据模型(当您在查询编辑器中时,转到 "Home" - "Close & Load",单击向下的小箭头和 select . "Close & Load To..." 和 select "Only Create Connection" 并勾选 "Add this data to the Data Model")

在 "Power Pivot" 选项卡中,您可以添加一个新的度量来计算此 table 的四分位数。我用了

quartile:=PERCENTILE.EXC(AllData[AllValues];0,25)

因为我不认为真的有特殊的四分位数函数。

假设您给出的 table 在 A1:B8 中(第 1 行中有 header),对于中位数,您可以使用以下 数组公式**:

=SUM(LOOKUP(INT(SUM(B2:B8)/2+{0.5,1}),MMULT(N(ROW(B2:B8)>=TRANSPOSE(ROW(B2:B8))),N(+B1:B7))+1,A2:A8))/2

注意此处的一个偏移范围 (B1:B7),其中 B1 假设如前所述包含一个(文本)header.

编辑:关于四分位数,这取决于您是希望根据 Excel QUARTILE 函数还是根据它们的 'standard' 定义来计算这些,即作为中位数upper/lower 一半的数据 (see here).

此致

**数组公式的输入方式与 'standard' 公式不同。您不是只按 ENTER,而是先按住 CTRL 和 SHIFT,然后再按 ENTER。如果操作正确,您会注意到 Excel 将大括号 {} 放在公式周围(尽管不要尝试自己手动插入)。