【Excel2007】高级技巧2:数组公式在求整体平均值上的应用
(声明,以下技巧均只在Excel2007中保证没问题,其它版本,您自己爽!)
【描述】先分别计算各行值,然后就计算结果整体求平均
【实现】
方法1:
方法2:
解法2(数组公式,记得按shift+ctrl+enter,同时哦!)
{=AVERAGE(C2:C11/B2:B11)}
问题1:当行数增加删除时结果怎么样能够相应动态变化?
解法2改进1:使用offset动态指定计算区域
{=AVERAGE(OFFSET(C2:C2,0,0,COUNTA(A:A)-1,1)/OFFSET(B2:B2,0,0,COUNTA(A:A)-1,1))}
问题2:如果有的公司来访量为0怎么办?(分母=0会发生除0错误)
解法2改进2:增加对分母的非0判断
{=AVERAGE(IF(OFFSET(B2:B2,0,0,COUNTA(A:A)-1,1)>0,OFFSET(C2:C2,0,0,COUNTA(A:A)-1,1)/OFFSET(B2:B2,0,0,COUNTA(A:A)-1,1),0))}
问题3:我手头有几个条件我希望只计算满足条件的数据行,不满足当它不存在怎么处理?
解法2改进3:使用if来进行条件判断,同时对于if的返回结果进行处理,只返回符合条件的数据,丢弃不符合条件数据
{=AVERAGE(IF(OFFSET(B2:B2,0,0,COUNTA(A:A)-1,1)>0,OFFSET(C2:C2,0,0,COUNTA(A:A)-1,1)/OFFSET(B2:B2,0,0,COUNTA(A:A)-1,1)))}
(备注:发现改进3和改进2之间的区别了吗?对少了“,0”,对计算结果的影响是改进2将分母为0的行的结果记为0,然后这个0参与了正题的求平均计算,
而改进3则丢弃了分母为0的行)


我只知道选中”D2:D11″,输入“=C2/B2”,按“F2”键,再同时按下“c
trl+shift+enter”,”D2:D11″的值都算出来了
“{=AVERAGE(C2:C11/B2:B11)}”这个好强啊,省了好多步骤,再配上“offset”更完美了
我决定了,要好好利用“offset”这个函数,太灵活了
offset好,offset秒,offset灵活定位呱呱叫!