ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 对我来说异常异常难的透视表,大家快来鄙视我吧。

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-3-5 20:04 | 显示全部楼层 |阅读模式
密码 000
2011年帐目.rar (55.93 KB, 下载次数: 14)

TA的精华主题

TA的得分主题

发表于 2011-3-5 21:03 | 显示全部楼层
楼住的题意没看懂但是楼主的第三个语句的group by是没有意义的。这个语句没有使用聚合函数,括号里的sum跟外层的group by是没有关系的。

TA的精华主题

TA的得分主题

发表于 2011-3-5 21:20 | 显示全部楼层
。。。。。。。。。。。

2011年帐目.rar

46.35 KB, 下载次数: 15

TA的精华主题

TA的得分主题

发表于 2011-3-5 21:38 | 显示全部楼层
select a.单位, a.月份, sum(iif((产品名称<>"回款" and 产品名称<>"10年转账" and 产品名称<>"开票"),金额,0)) as 销售额, sum(IIf(产品名称="回款",-金额,0)) as 回款额, sum(IIf(产品名称="开票",金额,0)) as 开票,(select sum(金额) from [销售清单$A:E] where 月份<=a.月份 and 单位=a.单位) as 应收款
from [销售清单$A:E] a where a.单位 is not null group by a.单位, a.月份

TA的精华主题

TA的得分主题

发表于 2011-3-5 21:57 | 显示全部楼层
分组累计,最好弄进数据库,然后用存储过程来做,现在这种在E中做,随着数据量的增加,会变慢很多 2011年帐目.rar (58.54 KB, 下载次数: 17)

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-3-5 21:57 | 显示全部楼层
神人啊。。。
大哥,数据是对的,但是我不知道怎么摆,回款额、开票        、销售额        、应收款这个四个作为数值字段,但是是横排的,怎么变成竖排。。。?



原帖由 pc520 于 2011-3-5 21:38 发表
select a.单位, a.月份, sum(iif((产品名称"回款" and 产品名称"10年转账" and 产品名称"开票"),金额,0)) as 销售额, sum(IIf(产品名称="回款",-金额,0)) as 回款额, sum(IIf(产品名称="开票",金额,0)) as 开票,(sel ...

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-3-5 21:59 | 显示全部楼层
好强大啊。。。。。。

原帖由 pc520 于 2011-3-5 21:57 发表
分组累计,最好弄进数据库,然后用存储过程来做,现在这种在E中做,随着数据量的增加,会变慢很多883251

TA的精华主题

TA的得分主题

发表于 2011-3-5 23:20 | 显示全部楼层
原帖由 闲池 于 2011-3-5 21:57 发表
神人啊。。。
大哥,数据是对的,但是我不知道怎么摆,回款额、开票        、销售额        、应收款这个四个作为数值字段,但是是横排的,怎么变成竖排。。。?




把“数据”字段拖到“行区域”。

我的SQL代码较简单,因为它尽量利用数据透视表对字段的“分组”、“数据显示方式”、添加“计算项”功能来完成计算,速度较快:
  1. select 单位,月份,iif((产品名称='回款' OR 产品名称='开票'),产品名称,iif(产品名称='10年转账','上年','销售')) as 类别,金额 from [销售清单$A1:E]
复制代码
4楼的代码把“开票”金额也计入“应收”金额中了,我透视表中“应收”金额是通过添加“计算项”公式获得的,因此可以灵活选择包含或不包含“开票”金额。

2011年帐目.rar

46.74 KB, 下载次数: 10

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-3-5 23:34 | 显示全部楼层
搞明白了


原帖由 cbtaja 于 2011-3-5 23:20 发表

把“数据”字段拖到“行区域”。

我的SQL代码较简单,因为它尽量利用数据透视表对字段的“分组”、“数据显示方式”、添加“计算项”功能来完成计算,速度较快:select 单位,月份,iif((产品名称='回款' OR 产品 ...

TA的精华主题

TA的得分主题

发表于 2011-3-6 00:11 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
下来研究一下....
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-30 13:29 , Processed in 0.051558 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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