ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 5522|回复: 11

[求助] 进销库存汇总并自动不显示为0行

[复制链接]

TA的精华主题

TA的得分主题

发表于 2016-1-10 11:27 | 显示全部楼层 |阅读模式
求指教!
用数据透视表功能将进货表和销售表合并到”表3“,括地区、店铺、种类,在增加一行“库存“汇总,库存=进货表的数量  减去  销售表的数量;如果库存显示为0,则所在行不显示(不筛选,不手动隐藏)。
先谢过各位指教!只求一个思路。

进销汇总.rar

7.48 KB, 下载次数: 146

TA的精华主题

TA的得分主题

发表于 2016-1-10 12:13 | 显示全部楼层
透视表不知怎样做,用字典
  1. Sub qq()
  2. Dim d As Object
  3. Dim r%, i%, aa, s$, j%
  4. Dim arr, brr, sht As Worksheet
  5. Set d = CreateObject("Scripting.Dictionary")
  6. For Each sht In Sheets(Array("进货", "销售"))
  7. With sht
  8. r = .Cells(.Rows.Count, 1).End(xlUp).Row
  9. arr = .Range("a2:d" & r)
  10. For i = 1 To UBound(arr)
  11. s = arr(i, 1) & arr(i, 2) & arr(i, 3)
  12. If Not d.Exists(s) Then
  13. ReDim brr(1 To 4)
  14. For j = 1 To 3
  15. brr(j) = arr(i, j)
  16. Next
  17. Else
  18. brr = d(s)
  19. End If
  20. brr(4) = brr(4) + IIf(sht.Name = "进货", 1, -1) * arr(i, 4)
  21. d(s) = brr
  22. Next
  23. End With
  24. Next
  25. For Each aa In d.keys
  26. If d(aa)(4) = 0 Then
  27. d.Remove (aa)
  28. End If
  29. Next
  30. If d.Count = 0 Then Exit Sub
  31. Sheet3.Cells.Clear
  32. Sheet1.[a1:d1].Copy Sheet3.[a1]
  33. Sheet3.Range("a2").Resize(d.Count, 4) = Application.Transpose(Application.Transpose(d.items))
  34. End Sub


复制代码

TA的精华主题

TA的得分主题

发表于 2016-1-10 12:14 | 显示全部楼层
点击按钮 进销汇总.zip (19.36 KB, 下载次数: 105)

TA的精华主题

TA的得分主题

发表于 2016-1-10 12:21 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
有点小问题,改一下
  1. Sub qq()
  2. Dim d As Object
  3. Dim r%, i%, aa, s$, j%
  4. Dim arr, brr, sht As Worksheet
  5. Set d = CreateObject("Scripting.Dictionary")
  6. For Each sht In Sheets(Array("进货", "销售"))
  7. With sht
  8. r = .Cells(.Rows.Count, 1).End(xlUp).Row
  9. arr = .Range("a2:d" & r)
  10. For i = 1 To UBound(arr)
  11. s = arr(i, 1) & arr(i, 2) & arr(i, 3)
  12. If Not d.Exists(s) Then
  13. ReDim brr(1 To 4)
  14. For j = 1 To 3
  15. brr(j) = arr(i, j)
  16. Next
  17. Else
  18. brr = d(s)
  19. End If
  20. brr(4) = brr(4) + IIf(sht.Name = "进货", 1, -1) * arr(i, 4)
  21. d(s) = brr
  22. Next
  23. End With
  24. Next
  25. For Each aa In d.keys
  26. If d(aa)(4) = 0 Then
  27. d.Remove (aa)
  28. End If
  29. Next
  30. If d.Count = 0 Then Sheet3.Cells.Clear: Exit Sub
  31. Sheet3.Cells.Clear
  32. Sheet1.[a1:d1].Copy Sheet3.[a1]
  33. Sheet3.Range("a2").Resize(d.Count, 4) = Application.Transpose(Application.Transpose(d.items))
  34. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2016-1-10 20:21 | 显示全部楼层
我用SQL 命令把你前面的功能实现了,但是“如果库存显示为0,则所在行不显示(不筛选,不手动隐藏)”,还在研究中

进销汇总.rar

12.23 KB, 下载次数: 58

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-1-11 11:32 | 显示全部楼层
ykqrs 发表于 2016-1-10 12:21
有点小问题,改一下

非常感谢,因为要处理数千个数据,数据透视不能解决,正好想找VBA方面的

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-1-11 11:37 | 显示全部楼层
shantt218 发表于 2016-1-10 20:21
我用SQL 命令把你前面的功能实现了,但是“如果库存显示为0,则所在行不显示(不筛选,不手动隐藏)”,还 ...

如果能解决后面的问题,在处理上千以上的数据还是非常不错的

TA的精华主题

TA的得分主题

发表于 2016-1-11 15:36 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
SQL实现:库存为0,不显示
  1. select a.地区,a.店铺,a.种类,a.数量 as 进货数量,b.数量 as 销售数量,a.数量-b.数量 as 库存 from [进货$]a inner join (select * from [销售$])b on a.地区=b.地区 and a.店铺=b.店铺 and a.种类=b.种类 and a.数量 <> b.数量
复制代码

进销汇总.zip (14.38 KB, 下载次数: 89)

TA的精华主题

TA的得分主题

发表于 2016-1-11 18:38 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
慢慢研究 很强大

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-1-12 13:55 | 显示全部楼层
本帖最后由 rwd001 于 2016-1-12 13:58 编辑
q694132899 发表于 2016-1-11 15:36
SQL实现:库存为0,不显示

如果后面继续增加数据,得出的结果发现有重复
123.JPG
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-3-29 13:34 , Processed in 0.044730 second(s), 11 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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