任务场景: 在采集数据时,有些时候可能会对同一个样本进行多次采样,就导致该样本的某个指标值对应多个采样值(每次采样值都会有些许偏差),所以快速将多个采样值求均值合并为一行数据是很重要的操作。如果是列求值,就将下列函数中的行列调换就行了


EXCEL公式:
例如从A1开始,每三行求一次平均值并合并
=AVERAGE(OFFSET($A$1,(ROW()-1)*3,0,3,1))
(1) OFFSET(reference, rows, cols, [height], [width]) : 返回基于指定单元格或区域的偏移量的单元格或区域
- reference(必需):作为起点的引用单元格或单元格范围。你希望从哪里开始偏移。
- rows(必需):从 reference 处出发,向上或向下偏移的行数。正数表示向下偏移,负数表示向上偏移。
对于公式中的 (ROW()-1)*3 :
因为我们是要每三行数据求一次平均值,所以对于接收新值的单元格,每变化一个单位相当于原数据中的三行,如果要对N行求值,就 *N 表示下一次返回的值从N行后返回
而 ROW-1 则是表示接收数据的起始位置,如果是从第N行接收数据,那公式就是 ROW - N
如果还是不太理解,可以输入这个公式后,利用EXCEL自带的公式求值功能清晰地观看每一步地计算步骤。如果 (ROW()-1)*3 的值为 n 那最终返回的行数就是 【 reference + n ,reference + n + height 】
- cols(必需):向左或向右偏移的列数。正数表示向右,负数表示向左。
- height(可选):返回行数的个数。默认为 1 行。
- width(可选):返回列数的个数。默认为 1 列。
(2) AVERAGE( ) : 对返回的数据求均值
需要注意的是,上述的公式在处理数据时有一个弊端,即该公式只能一列一列的处理数据,对于大量数据需要处理的任务还是很麻烦。
=AVERAGE(OFFSET( A$1,(ROW()-1)*3,0,3,1))
解决的办法也很简单,因为上一个公式在选定起始位置时把列也固定了,所以只需删掉列前面的 $ 符号,然后输入公式后选中单元格直接往左拉,列数就会自动加了,也就实现了对多列数据同时操作。
最后,如果还需要规定最终求得值的小数点精确度,可以再加上 ROUND ( ) 函数
=ROUND(AVERAGE(OFFSET( A$1,(ROW()-2)*3,0,3,1)), 2)
662

被折叠的 条评论
为什么被折叠?



