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))))))
但幸运的是巴里得到最短的表示。