从 Excel 中的单列数据获取中位数间隔?

从 Excel 中的单列数据获取中位数间隔?

Excel 中的“A”列中有相当多的数据行。

我想要做的是获取 8 个答案间隔内的中位数(=MEDIAN(A1:A8),然后是接下来 8 个答案的中位数=MEDIAN(A9:A16,依此类推)。如何在不手动更改公式的情况下做到这一点?

如能得到建议将不胜感激!:)

答案1

两种可能的方法

1.将公式创建为文本值,然后转换为实际公式,例如将此公式放在 B1 中并根据需要向下复制

="=MEDIAN(A"&ROWS(B$1:B1)*8-7&":A"&ROWS(B$1:B1)*8&")"

现在通过执行以下操作转换为文本

复制 B 列,然后右键单击并使用选择性粘贴 > 值 > 确定

现在通过以下方式转换为公式

选择 B 列并使用数据 > 文本到列 > 完成

2.在B1中使用此公式复制下来

=MEDIAN(OFFSET(A$1,ROWS(B$1:B1)*8-8,0,8))

第一种方法稍微复杂一些,但最终你会得到你想要的精确的中位数公式。第二种方法更简单,并给出了正确的结果,但从公式来看,每个公式的作用并不明显

答案2

您可以使用以下公式(在 B1 中)并向下填写:

=MEDIAN(INDIRECT("A"&(ROW()-1)*8+1&":A"&ROW()*8))

答案3

以下公式是最长的表示方式:-

=IF(ISERROR(MEDIAN(INDIRECT("A"&IF(ROW(A1)=1,ROW(A1),ROW(A1)+(7*(ROW(A1)-1)))):INDIRECT("A"&IF(ROW(A8)=8,ROW(A8),ROW(A8)+(7*(ROW(A1)-1)))))),"不适用",MEDIAN(INDIRECT("A"&IF(ROW(A1)=1,ROW(A1),ROW(A1)+(7*(ROW(A1)-1)))):INDIRECT("A"&IF(ROW(A8)=8,ROW(A8),ROW(A8)+(7*(ROW(A1)-1))))))

但幸运的是巴里得到最短的表示。

相关内容