Excel精英培训网

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

[已解决]计数求和?

[复制链接]
发表于 2013-5-23 10:00 | 显示全部楼层 |阅读模式
本帖最后由 hahada 于 2013-5-23 10:41 编辑

把表1和表2里k列aa bb dd筛选出来,然后H列计数求和
表1计数求和结果在a2和b2,表2计数求和结果在a3和b3
附件: 附件.rar (4.68 KB, 下载次数: 18)
发表于 2013-5-23 10:06 | 显示全部楼层
A2输入公式  =COUNTIF(K5:K29,"??")   A3输入公式=COUNTIF(Sheet2!K5:K29,"??")
B2输入公式 =SUMIF(K5:K29,"??",H5:H29)  B3输入公式 =SUMIF(Sheet2!K5:K29,"??",Sheet2!H5:H29)

附件.rar

4.57 KB, 下载次数: 8

回复

使用道具 举报

 楼主| 发表于 2013-5-23 10:23 | 显示全部楼层
as0810114 发表于 2013-5-23 10:06
A2输入公式  =COUNTIF(K5:K29,"??")   A3输入公式=COUNTIF(Sheet2!K5:K29,"??")
B2输入公式 =SUMIF(K5:K29 ...

能不能用代码解决?
回复

使用道具 举报

发表于 2013-5-23 10:25 | 显示全部楼层
hahada 发表于 2013-5-23 10:23
能不能用代码解决?

那你找别人吧,简单的东西没必要用VBA,个人观点。
回复

使用道具 举报

发表于 2013-5-23 10:33 | 显示全部楼层
公式不满足要求,改一下  A2  =SUMPRODUCT((K5:K29={"aa","bb","dd"})*1)
A3  =SUMPRODUCT((sheet2!K5:K29={"aa","bb","dd"})*1)
B2  =SUMPRODUCT((K5:K29={"aa","bb","dd"})*H5:H29)
B3  =SUMPRODUCT((Sheet2!K5:K29={"aa","bb","dd"})*Sheet2!H5:H29)
回复

使用道具 举报

 楼主| 发表于 2013-5-23 10:33 | 显示全部楼层
as0810114 发表于 2013-5-23 10:25
那你找别人吧,简单的东西没必要用VBA,个人观点。

用公式也行,但是你这个公式没达到要求,把aa  bb  dd筛选出来,而且筛选区域下方有可能还有数据
不能每次修改单元格地址?

回复

使用道具 举报

发表于 2013-5-23 10:38 | 显示全部楼层    本楼为最佳答案   
hahada 发表于 2013-5-23 10:33
用公式也行,但是你这个公式没达到要求,把aa  bb  dd筛选出来,而且筛选区域下方有可能还有数据
不能每 ...

那你可以把区域设置大一点啊,H5:H10000,添加之后就自动计算了。达到10000行,你调到100000行,都行。
回复

使用道具 举报

发表于 2013-5-23 10:41 | 显示全部楼层
  1. Sub 计数与求和()
  2. For Each Rng In Range("k5:k" & [k65536].End(3).Row)
  3. If Rng = "aa" Or Rng = "bb" Or Rng = "dd" Then
  4. k = k + 1
  5. rn = rn + Cells(Rng.Row, "h")
  6. End If
  7. Next
  8. [a2] = k
  9. [b2] = rn
  10. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2013-5-23 10:46 | 显示全部楼层
ligh1298 发表于 2013-5-23 10:41

有两个工作表,表1计数求和结果在a2和b2,表2计数求和结果在a3和b3

回复

使用道具 举报

发表于 2013-5-23 10:57 | 显示全部楼层
  1. Sub 计数与求和()
  2. For Each Rng In Sheet1.Range("k5:k" & [k65536].End(3).Row)
  3. If Rng = "aa" Or Rng = "bb" Or Rng = "dd" Then
  4. k = k + 1
  5. rn = rn + Sheet1.Cells(Rng.Row, "h")
  6. End If
  7. Next
  8. For Each Rng1 In Sheet2.Range("k5:k" & [k65536].End(3).Row)
  9. If Rng1 = "aa" Or Rng1 = "bb" Or Rng1 = "dd" Then
  10. k1 = k1 + 1
  11. rn1 = rn1 + Sheet2.Cells(Rng1.Row, "h")
  12. End If
  13. Next
  14. [a2] = k
  15. [b2] = rn

  16. [a3] = k1
  17. [b3] = rn1
  18. End Sub
复制代码
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-16 05:19 , Processed in 1.005657 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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