我的 Excel 表中有 3 列数据。第一列表示邮政编码,第二列表示该邮政编码中的值,第三列表示该值在邮政编码中的频率。
目前,如果邮政编码有多个值,则会在一列中多次列出其对应的值和频率。因此,每个邮政编码都有很多行数据。
我已链接我的数据的图片。
我需要计算每个邮政编码中所有值的标准差、最小值、最大值、平均值等,同时考虑它们出现的频率。我一直在手动浏览所有邮政编码,并逐一计算所有内容。有没有更快的方法来做到这一点?
答案1
根据 CharlieRB 的答案,您可以通过输入数组公式在第 6 行获得 MODE
=SUMPRODUCT(--($A:$A=G1), --($C:$C=MAX(IF(($A:$A=G1), ($C:$C)))), ($B:$B))
在单元格 G6 中。
答案2
该解决方案并不完整,但是可以帮助您入门。
SUM
在 FREQUENCY 右侧添加一列。添加一个公式,通过 FREQUENCY 计算 BI =B2*C2
;。然后将此公式复制到该列下方。这将为您提供可用于确定所需其他值的数字。
现在,为您想要获取数据的每个邮政编码创建一个新列。在下面的示例中,我使用了G1
和H1
。在每个列下,您将输入一个数组公式来计算所需的值。让我们首先处理 43015。
在 中S2
输入=AVERAGE(IF(($A:$A=G1),($D:$D)))
,然后按F2。要使其成为数组,请同时按 ++ Ctrl。如果操作正确,它将输入公式。此公式将在 A 列中查找与单元格 匹配的邮政编码,然后对与邮政编码匹配的 D 列中的值取平均值。ShiftEnter{}
G1
选中单元格后G2
,将右下角拖到 43016 单元格并释放。这应该会自动调整偏移并根据单元格进行计算H1
。
您将对以下公式执行相同的操作。
对于 Min;=MIN(IF(($A:$A=G1),($B:$B)))
对于 Max;=MAX(IF(($A:$A=G1),($B:$B)))
标准开发;=STDEV(IF(($A:$A=G1),(($B:$B)*($B:$B)*($C:$C))))
注意:如果在将公式创建成数组后对其进行了更改,则必须按Ctrl+ Shift+再次将其创建成数组Enter。