Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3864|回复: 6

[已解决]vba如何求得动态平均值

[复制链接]
发表于 2013-4-15 14:28 | 显示全部楼层 |阅读模式
本帖最后由 nblq 于 2013-4-15 14:34 编辑

老师们好,我现在有个问题请教大家。如图。
在行3已经有12个数据,行4需要手动输入。
p4为行4的平均值,我用公式直接求得。
现在要求是,比如图中p4为3个月的平均值,我需要p3求的也是前3个月的平均值,如果p4加入了一个数据即4个数据,那我需要p3也同样变化。
就是动态同期数据显示。
最佳答案
2013-4-15 18:26
本帖最后由 hoogle 于 2013-4-15 18:28 编辑
  1. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  2. Dim i, arr, Res, icount
  3. arr = Range("d3:o4")
  4. For i = 1 To UBound(arr, 2)
  5.     If arr(2, i) <> "" Then
  6.         Res = Res + arr(1, i)
  7.         icount = icount + 1
  8.     End If
  9. Next
  10. Range("p3") = Res / icount
  11. End Sub
复制代码
代码放在sheet1工作表里
捕获.PNG

动态求平均值.rar

9.08 KB, 下载次数: 26

 楼主| 发表于 2013-4-15 15:13 | 显示全部楼层
回复

使用道具 举报

发表于 2013-4-15 18:26 | 显示全部楼层    本楼为最佳答案   
本帖最后由 hoogle 于 2013-4-15 18:28 编辑
  1. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  2. Dim i, arr, Res, icount
  3. arr = Range("d3:o4")
  4. For i = 1 To UBound(arr, 2)
  5.     If arr(2, i) <> "" Then
  6.         Res = Res + arr(1, i)
  7.         icount = icount + 1
  8.     End If
  9. Next
  10. Range("p3") = Res / icount
  11. End Sub
复制代码
代码放在sheet1工作表里
回复

使用道具 举报

发表于 2013-4-15 18:38 | 显示全部楼层
用公式不就成了,这还整VBA。

回复

使用道具 举报

 楼主| 发表于 2013-4-16 08:34 | 显示全部楼层
hoogle 发表于 2013-4-15 18:26
代码放在sheet1工作表里

{:35:}谢谢,要的就是这个。
回复

使用道具 举报

 楼主| 发表于 2013-4-16 08:35 | 显示全部楼层
hwc2ycy 发表于 2013-4-15 18:38
用公式不就成了,这还整VBA。

在学习vba呢,想多学点撒,嘿嘿。
公式的话,怎么用?求指点
回复

使用道具 举报

 楼主| 发表于 2013-4-16 15:01 | 显示全部楼层
hwc2ycy 发表于 2013-4-15 18:38
用公式不就成了,这还整VBA。

大神,公式咋整?
求现身。求指点~~~
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-21 00:03 , Processed in 0.324043 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表