Excel精英培训网

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

[已解决]VBA IF 与 SUMIF的结合,求大神解答

[复制链接]
发表于 2016-9-12 14:15 | 显示全部楼层 |阅读模式
需求:
“基础数据”工作表存储的是店铺按SKU的销量明细,逐日累加
“产品情况”工作表存储的是对销量明细的分析,在D列“销售至90%时间”,用VBA实现,当某个时间点时间之前的累计销量,第一次超过销售总量和剩余库存量之和的90%时,返回那天的时间。猜测是用  if  和  sumif 的结合实现,但一直没有完成,请大神指教
附件参上

最佳答案
2016-9-12 16:55
  1. Sub 计算()
  2.     Set d = CreateObject("scripting.dictionary")
  3.     Set d1 = CreateObject("scripting.dictionary")
  4.     arr = Sheets(2).[a1].CurrentRegion
  5.     For i = 2 To UBound(arr)
  6.         d(arr(i, 1)) = arr(i, 2) + arr(i, 3)  '产品的总量(销量+库存)
  7.         d1(arr(i, 1)) = i     '产品所在的行
  8.     Next
  9.    
  10.     Set d2 = CreateObject("scripting.dictionary")
  11.     brr = Sheets(1).[a1].CurrentRegion
  12.     For i = 2 To UBound(brr)
  13.         x = brr(i, 2)    '产品
  14.         If arr(d1(x), 4) = "" Then
  15.             d2(x) = d2(x) + brr(i, 3)    '销量累加
  16.             If d2(x) > d(x) * 0.9 Then arr(d1(x), 4) = brr(i, 1)  '销量达到总量的90%,提取此日期(提取过一次就不再提取)
  17.         End If
  18.     Next
  19.     [a1].Resize(UBound(arr), 4) = arr
  20. End Sub
复制代码

附件.zip

8.55 KB, 下载次数: 20

 楼主| 发表于 2016-9-12 14:36 | 显示全部楼层
回复

使用道具 举报

发表于 2016-9-12 16:55 | 显示全部楼层    本楼为最佳答案   
  1. Sub 计算()
  2.     Set d = CreateObject("scripting.dictionary")
  3.     Set d1 = CreateObject("scripting.dictionary")
  4.     arr = Sheets(2).[a1].CurrentRegion
  5.     For i = 2 To UBound(arr)
  6.         d(arr(i, 1)) = arr(i, 2) + arr(i, 3)  '产品的总量(销量+库存)
  7.         d1(arr(i, 1)) = i     '产品所在的行
  8.     Next
  9.    
  10.     Set d2 = CreateObject("scripting.dictionary")
  11.     brr = Sheets(1).[a1].CurrentRegion
  12.     For i = 2 To UBound(brr)
  13.         x = brr(i, 2)    '产品
  14.         If arr(d1(x), 4) = "" Then
  15.             d2(x) = d2(x) + brr(i, 3)    '销量累加
  16.             If d2(x) > d(x) * 0.9 Then arr(d1(x), 4) = brr(i, 1)  '销量达到总量的90%,提取此日期(提取过一次就不再提取)
  17.         End If
  18.     Next
  19.     [a1].Resize(UBound(arr), 4) = arr
  20. End Sub
复制代码

附件.rar

18.11 KB, 下载次数: 39

评分

参与人数 1 +6 收起 理由
today0427 + 6 赞!

查看全部评分

回复

使用道具 举报

发表于 2016-9-15 21:45 | 显示全部楼层

两个附件都有问题???打不开呀
回复

使用道具 举报

发表于 2016-9-22 20:59 | 显示全部楼层
为什么会打不开
回复

使用道具 举报

发表于 2016-9-22 21:50 | 显示全部楼层

提示数据错误,文件损坏,为什么不能解压文件。真奇怪
回复

使用道具 举报

发表于 2016-9-23 11:31 | 显示全部楼层
雄鹰2013 发表于 2016-9-22 21:50
提示数据错误,文件损坏,为什么不能解压文件。真奇怪

我自己下载了一下确实如此。可能前阵论坛出问题受影响了吧。
回复

使用道具 举报

发表于 2016-9-23 12:31 | 显示全部楼层
论坛什么时候能够恢复正常      ,升级搞坏了
回复

使用道具 举报

发表于 2016-9-23 14:01 | 显示全部楼层
laoau138 发表于 2016-9-23 12:31
论坛什么时候能够恢复正常      ,升级搞坏了

你提问grf1973老师的几个问题能打包发我邮箱吗,我想学习一下178484059@qq.com ,谢谢。
回复

使用道具 举报

发表于 2016-9-23 14:05 | 显示全部楼层
本帖最后由 laoau138 于 2016-9-23 14:08 编辑
雄鹰2013 发表于 2016-9-23 14:01
你提问grf1973老师的几个问题能打包发我邮箱吗,我想学习一下178484059@qq.com ,谢谢。

彩票问题你还需要吧?

这几条好难看到头都痛
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 20:31 , Processed in 1.595548 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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