![让 Excel 每 49-50 行计算大型数据集的平均值](https://linux22.com/image/1577218/%E8%AE%A9%20Excel%20%E6%AF%8F%2049-50%20%E8%A1%8C%E8%AE%A1%E7%AE%97%E5%A4%A7%E5%9E%8B%E6%95%B0%E6%8D%AE%E9%9B%86%E7%9A%84%E5%B9%B3%E5%9D%87%E5%80%BC.png)
我正在处理一个大型数据集。这是前几行的图片。
大约每 50 行,循环数就会增加 1。但是,用于数据采集的程序有时会错过收集,最终导致每循环 49 个点而不是每循环 50 个点。
我想要做的是计算每个单独周期每列数据的平均数,但我需要以某种方式解释每个周期点数的变化。
我一直在使用:
AVERAGE(OFFSET($A$2,(ROW()-2)*50,0,50,1))
但是当每个循环中的行数发生变化时,我无法弄清楚如何使其动态化。
答案1
如果您有 Office 365 或 Office 2019,则可以使用 AverageIf()。
=AVERAGEIF($A$2:$A$10,A2,$B$2:$B$10)
在没有此功能的早期版本的Excel中,您可以使用这种方法:
=AVERAGE(INDEX($B$2:$B$10,MATCH(A2,$A$2:$A$10,0)):INDEX($B$2:$B$10,MATCH(A2,$A$2:$A$10,1)))
屏幕截图显示了这两个公式的实际作用。
编辑:如果您希望平均值仅显示在具有新循环编号的行上,请将整个公式放在 IF 语句中,例如
=if(A2<>A1,AVERAGE(INDEX($B$2:$B$10,MATCH(A2,$A$2:$A$10,0)):INDEX($B$2:$B$10,MATCH(A2,$A$2:$A$10,1))),"")