ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 关于数据库在EXCEL中的应用(二次新增实例)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2006-4-2 20:34 | 显示全部楼层 |阅读模式
实例传统和常见的EXCEL应用大多如: "在不同的工作表建立相同格式的报表, 汇总的时候则在新的工作表内建立诸如 Sheet1A1+Sheet2A1+Sheet3A1...的公式".
这种固化报表结构的致命缺点在于:
1) 更改某工作表结构, 无论是增加行/列, 原有的公式容易出错
2) 更改某工作表结构后, 即使公式依然工作, 却容易忽略了修改部分对正确统计结果的影响
3) 统计灵活性差, 很难在固有的格式下再应对新的报表要求, 也就是说, 降低了数据的分析价值
对ERP和数据库有经验的朋友, 一定对主数据, 数据表, 数据库不陌生. 其实, 当我们把这些概念引入到EXCEL中, 对财务分析和数据分析人员来说, EXCEL的灵活性就真正得到发挥了...
------------------------------------------------------------------------------------------------
参见附件, 这是一家上市公司的数年销售数据统计, 可以在用户选择左上角下拉框中的"国家"或是"全部(大洲)", 并点击"Proceed(运行)"的时候自动完成统计报表.
请您在打开工作表的时候确保:
1) 您的EXCEL工作表设置为"自动重算" (EXCEL在起始默认情况下即为"自动重算")
2) 请启用宏, 该宏为本人自行编写的调用Dsum公式的宏.
该示例并非展示宏的使用, 因为即使不用宏也可以做到类似的效果; 也不在于证明Dsum比数据透视表或者数组来得更高级.
该示例的中心思想是"统一的数据表 -> 条件 -> 多样化报表"
------------------------------------------------------------------------------------------------
也许有的朋友说, 用数组可以完成这份报告. 是的, 使用数组在这个文件中可以更为简单地得到结果, 但数组公式在数据纪录大于3000条的时候运行效率非常低, 不如Dsum; 而我们不使用数据透视表的原因, 则是它实在太不美观, 比率等计算功能又太弱了.

fT2CWKgo.rar (20.53 KB, 下载次数: 103)

[此贴子已经被作者于2006-5-3 21:06:08编辑过]

TA的精华主题

TA的得分主题

发表于 2006-4-4 00:01 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
太高深,惭愧,一点都不会

TA的精华主题

TA的得分主题

发表于 2006-4-4 08:34 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
不错的。

TA的精华主题

TA的得分主题

发表于 2006-4-4 09:37 | 显示全部楼层
<P>支持一下,看看再说。。。。</P>

TA的精华主题

TA的得分主题

发表于 2006-4-5 13:00 | 显示全部楼层
<P>支持一下,看看再说。。。。</P>

TA的精华主题

TA的得分主题

发表于 2006-4-7 08:04 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
东西不错。密码是多少啊

TA的精华主题

TA的得分主题

发表于 2006-4-7 13:30 | 显示全部楼层
<P>高,高,真高</P>
<P>能告知密码吗</P>

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-4-7 19:24 | 显示全部楼层
真不好意思, 没注意上传了一个有密码的版本, 现在把密码取消重新上传给大家讨论, 大家也可以看到其中宏的代码.
发表这个文件的本意不是和大家讨论高深的公式应用, 事实上, 这个例子所使用的公式不外乎Vlookup, if, dsum, max之类, 关键的思想是组织一个数据库, 然后给出灵活可变的条件, 之后就是比透视表漂亮专业的报告了.
EXCEL本身的结构就是一个相当专业的数据库, 行,列定义了数据表(sheet), 由多个数据表构成了数据库(workbook)...像这个帖子开头说的,如何来利用,组织这些数据表就是真正的精华了.
Biyp4MEN.rar (18.5 KB, 下载次数: 63)

TA的精华主题

TA的得分主题

 楼主| 发表于 2006-4-9 12:56 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
<P>有朋友写邮件问宏是怎么工作的,这里稍微解释一下:</P>
<P>-------------------------------------------------------------</P>
<P>Private Sub CommandButton1_Click()</P>
<P>Dim i As Long 定义变量i<BR>Dim j As Long 定义变量j<BR>j = 1 变量起始值<BR>i = 1 变量起始值<BR>For i = 1 To Range("Tab1").Rows.Count 变量终止值为计算区域的行数<BR>For j = 1 To Range("Tab1").Columns.Count 变量终止值为计算区域的列数</P>
<P>Sheets("Rep1").Cells(2, 7).Value = Cells(8 + i, 4).Value 控制Dsum条件变化,为动态单元格第8+i行,第4列<BR>Sheets("Rep1").Cells(2, 8).Value = Cells(7, 5 + j).Value 控制Dsum条件变化,为动态单元格第7行,第5+j列</P>
<P>Sheets("Rep1").Cells(8 + i, 5 + j).Formula = "=DSum(SDB, Qty, crite1)" 控制Dsum工作区域为动态单元格第8+i行,第5+j列<BR>Sheets("Rep1").Cells(8 + i, 5 + j).Select</P>
<P>Selection.Copy<BR>Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _<BR>        False, Transpose:=False 选择性粘贴数值,将计算结果固化<BR>Next j 下一个变量值<BR>Next i 下一个变量值</P>
<P>Application.CutCopyMode = False </P>
<P>End Sub 结束</P>
<P>---------------------------------------------------------------------------------</P>
<P>还是开头的老话,宏是个花哨的东西,绝大多数情况下,我们用简单直观的公式能解决的问题就应该让它保持简单直观.在本例中,不使用宏,可以达到几乎相同的效果,因为核心公式就是Dsum.</P>

TA的精华主题

TA的得分主题

发表于 2006-4-9 16:34 | 显示全部楼层
现在不缺VBA的技巧,就缺这样的结构化的思想方式,支持!~
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-6-24 04:01 , Processed in 0.052500 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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