我要完成的任务很简单,但是我不确定如何在excel中做到这一点。
我有一个值列表和每个值的计数数量(我的变量是离散的)。我正在尝试根据给定的计数来计算变量的第一四分位数和第三四分位数。整个数据集将太大而无法以原始格式显示为excel,因此我使用的是价值计数矩阵。
示例:
byte[] keySet= { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
byte plaintext[] = { 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, (byte) 0x88, (byte) 0x99, (byte) 0xaa, (byte) 0xbb, (byte) 0xcc, (byte) 0xdd, (byte) 0xee, (byte) 0xff };
我需要从该数据集中生成第一,第三四分位数和中位数,但据我所知,excel的四分位数仅接受原始值,而不接受值及其计数。
答案 0 :(得分:2)
假设您所提供的表格位于A1:B8
中(标题位于第1行),则对于中位数,您可以使用以下数组公式** :
=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
被假定为包含一个(文本)标头。
Edit:重新四分位数,这取决于您是否希望根据Excel QUARTILE函数或它们的“标准”定义来计算它们,即作为数据上/下半部分的中位数( see here。
致谢
**输入数组公式的方式与使用“标准”公式的方式不同。首先按住CTRL和SHIFT,然后再按Enter,而不是仅按ENTER。如果操作正确,您会注意到Excel在公式周围放置了大括号{}(尽管不要尝试自己手动插入大括号)。
答案 1 :(得分:1)
我认为仅使用公式是不可能的。您可以轻松地创建具有单独列表的公式,以避免总行数超过excel行的问题,但是我不知道将这些列表附加到函数内部的一个大列表中的任何方法。也许其他人知道一种方法,但是与此同时,Excel中还有另一种方法:
您可以使用的是电源查询和电源枢纽。您从拥有的表开始,然后将其添加为“查询”(“数据”-“获取和转换数据”部分-“从表/范围”。我有Excel 2016,因此,如果您使用的是其他版本,则路径很可能不同或在较旧的版本中,这些工具不可用)
现在编辑查询,并使用List.Repeat添加另一列以创建完整的数据集,展开值并加载到数据模型(在“查询编辑器”中转到“主页”-“关闭并加载”,单击向下的小箭头,然后选择“关闭并加载到...”,然后选择“仅创建连接”,然后选中“将此数据添加到数据模型”)
在“ Power Pivot”选项卡中,可以添加新的“度量”以计算该表的四分位数。我用过
quartile:=PERCENTILE.EXC(AllData[AllValues];0,25)
因为我认为并没有真正特殊的四分位数功能。