Excel精英培训网

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

[已解决]组合货品总价计算问题,寻求帮助!!!

[复制链接]
发表于 2012-8-23 11:20 | 显示全部楼层 |阅读模式
本帖最后由 weixin321 于 2012-8-23 12:44 编辑

组合货品总价计算问题,寻求帮助!!!
2012-07-02_111251.jpg
attach]246138[/attach]


补充说明
2012-07-02_124222.jpg
最佳答案
2012-8-23 14:10
本帖最后由 mxg825 于 2012-8-23 14:11 编辑

或者用以下的代码

  1. Private Sub CommandButton2_Click()
  2. Range("L5:T65535").ClearContents
  3. Dim intRow As Integer, t As Single
  4.     Dim ARow As Integer, SheDate As String
  5.     t = Timer
  6.     Dim cn As New ADODB.Connection, sql As String
  7.     intRow = Sheet1.Range("B65536").End(xlUp).Row
  8.     SheDate = "sheet1$B4:J" & intRow
  9.     cn.Open "provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=" & ThisWorkbook.FullName
  10.     sql = "select A.货品编号,A.产地,A.货品名称,A.规格,sum(A.总数量),A.单位,sum(B.新总价),ABS(SUM(B.新总价)/sum(A.总数量)) from (" & _
  11.         "(select 货品编号,产地,货品名称,规格,单位,单号,sum(数量) AS 总数量 from [" & SheDate & "] WHERE 类型 ='组合货品'GROUP BY 货品编号,产地,货品名称,规格,单位,单号) as a " & _
  12.             " left join " & _
  13.         "(select 单号,sum(总价) as 新总价 from [" & SheDate & "] WHERE 类型 ='明细货品' GROUP BY 单号) as B " & _
  14.         "ON A.单号=B.单号) GROUP BY A.货品编号,A.产地,A.货品名称,A.规格,A.单位"
  15.     Sheet1.Range("L5").CopyFromRecordset cn.Execute(sql)
  16.     cn.Close
  17.     Set cn = Nothing
  18. End Sub
复制代码

主表.rar

15.46 KB, 下载次数: 17

发表于 2012-8-23 12:38 | 显示全部楼层
无法理解!。。。。。请重新表达一下!
回复

使用道具 举报

 楼主| 发表于 2012-8-23 12:45 | 显示全部楼层
mxg825 发表于 2012-8-23 12:38
无法理解!。。。。。请重新表达一下!

2012-07-02_124222.jpg
回复

使用道具 举报

发表于 2012-8-23 12:47 | 显示全部楼层
尝试了,无法理解,请重新表达……
回复

使用道具 举报

发表于 2012-8-23 13:15 | 显示全部楼层
写好了!
代码如下

  1. Private Sub CommandButton2_Click()
  2. Range("l5:T65535").ClearContents
  3. Dim intRow As Integer, t As Single
  4.     Dim ARow As Integer, SheDate As String
  5.     t = Timer
  6.     Dim cn As New ADODB.Connection, sql As String
  7.     intRow = Sheet1.Range("B65536").End(xlUp).Row
  8.     SheDate = "sheet1$B4:J" & intRow
  9.     cn.Open "provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=" & ThisWorkbook.FullName
  10.     sql = "select A.货品编号,A.产地,A.货品名称,A.规格,sum(A.数量),A.单位,sum(B.新总价),ABS(SUM(B.新总价)/sum(A.数量)) from (" & _
  11.         "(select * from [" & SheDate & "] WHERE 类型 ='组合货品') as a " & _
  12.             " left join " & _
  13.         "(select 单号,sum(总价) as 新总价 from [" & SheDate & "] WHERE 类型 ='明细货品' GROUP BY 单号) as B " & _
  14.         "ON A.单号=B.单号) GROUP BY A.货品编号,A.产地,A.货品名称,A.规格,A.单位"
  15.     Sheet1.Range("L5").CopyFromRecordset cn.Execute(sql)
  16.     cn.Close
  17.     Set cn = Nothing
  18. End Sub
复制代码

主表.rar

21.72 KB, 下载次数: 14

回复

使用道具 举报

 楼主| 发表于 2012-8-23 13:47 | 显示全部楼层
mxg825 发表于 2012-8-23 13:15
写好了!
代码如下

老师发现一个错误!
2012-07-02_134539.jpg
主表.rar (20.05 KB, 下载次数: 9)
回复

使用道具 举报

发表于 2012-8-23 14:03 | 显示全部楼层
你自己数据源有误!
回复

使用道具 举报

发表于 2012-8-23 14:04 | 显示全部楼层
两个组合 名称相同 还用 相同的 单号!
回复

使用道具 举报

发表于 2012-8-23 14:10 | 显示全部楼层    本楼为最佳答案   
本帖最后由 mxg825 于 2012-8-23 14:11 编辑

或者用以下的代码

  1. Private Sub CommandButton2_Click()
  2. Range("L5:T65535").ClearContents
  3. Dim intRow As Integer, t As Single
  4.     Dim ARow As Integer, SheDate As String
  5.     t = Timer
  6.     Dim cn As New ADODB.Connection, sql As String
  7.     intRow = Sheet1.Range("B65536").End(xlUp).Row
  8.     SheDate = "sheet1$B4:J" & intRow
  9.     cn.Open "provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=" & ThisWorkbook.FullName
  10.     sql = "select A.货品编号,A.产地,A.货品名称,A.规格,sum(A.总数量),A.单位,sum(B.新总价),ABS(SUM(B.新总价)/sum(A.总数量)) from (" & _
  11.         "(select 货品编号,产地,货品名称,规格,单位,单号,sum(数量) AS 总数量 from [" & SheDate & "] WHERE 类型 ='组合货品'GROUP BY 货品编号,产地,货品名称,规格,单位,单号) as a " & _
  12.             " left join " & _
  13.         "(select 单号,sum(总价) as 新总价 from [" & SheDate & "] WHERE 类型 ='明细货品' GROUP BY 单号) as B " & _
  14.         "ON A.单号=B.单号) GROUP BY A.货品编号,A.产地,A.货品名称,A.规格,A.单位"
  15.     Sheet1.Range("L5").CopyFromRecordset cn.Execute(sql)
  16.     cn.Close
  17.     Set cn = Nothing
  18. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2012-8-23 14:10 | 显示全部楼层
mxg825 发表于 2012-8-23 14:04
两个组合 名称相同 还用 相同的 单号!

不好意思,是我没有注意到,非常抱歉!!!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 06:17 , Processed in 0.881997 second(s), 14 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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