ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

SQL求字段TOP20,高手请进

[复制链接]

TA的精华主题

TA的得分主题

发表于 2009-8-8 15:40 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
有空好好学习

TA的精华主题

TA的得分主题

发表于 2009-8-8 16:17 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
用数据库的查询来做,试试看!
做好查询后,然后用透视表去挂接它!这样好像与数据透视表就没有关系了!

TA的精华主题

TA的得分主题

发表于 2009-8-8 19:44 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
原帖由 yanjie 于 2009-8-8 16:17 发表
用数据库的查询来做,试试看!
做好查询后,然后用透视表去挂接它!这样好像与数据透视表就没有关系了!

最好是这样!~~~
否则,我们学透视表的信心就不足了!~~~

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-8-8 23:38 | 显示全部楼层
我需要做的数据是统计一个星期的销量、销售多管TOP20,每周都要运行一次,重新定义一下时间,所以得有几个变量的。这样也方便用数据透视表链接数据库吗?

TA的精华主题

TA的得分主题

发表于 2009-8-9 14:55 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
分类前20名的查询或叫筛选,难度就在这个分类上,这等于是多条件的筛选,但筛选的自定义和高级筛选的条件设置是无法做到这点,如果是单条件的前20名,是很容易解决的。在上述发表的帖子上看到很多高手已经用VBA和SQL语句解决了,本人通过解几何题设置辅助线得到启发,这个难题也可设置辅助列用简单的公式和筛选解决。先排序(先大分类升序后销售额降序),增加两列,1列为名次赋值(1、2、3……),1列为前20名标记(为筛选服务)。具体见附件。

多个分类条件的筛选查询.rar

58.02 KB, 下载次数: 22

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-8-9 20:34 | 显示全部楼层

回复 15楼 nkgsm 的帖子

谢谢你的回答~!你这个也是一个不错的思路。如果不运用VBA代码完成前二十名的筛选的话,目前你的方法是最好的。可是我要求的是速度与自动化……
慢着,也许把你的这种思想用VBA来实现的话,也许速度上会快一点的。

TA的精华主题

TA的得分主题

发表于 2009-8-10 09:03 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
我按照上述方法录制了一个宏,这个代码要修改一下更好,比如填充到等,这个宏还有一个缺陷,要选定h2单元格,因为录制时没有选择h2。具体代码如下:
Sub 分类前20()
'
' 分类前20 Macro
' 宏由 nkpcb 录制,时间: 2009-8-10
'

'
    ActiveCell.FormulaR1C1 = "1"
    Range("H3").Select
    ActiveCell.FormulaR1C1 = "=IF(R[-1]C[-5]<>RC[-5],1,1+R[-1]C)"
    Range("H3").Select
    Selection.AutoFill Destination:=Range("H3:H1303")
    Range("H3:H1303").Select
    Range("I2").Select
    ActiveCell.FormulaR1C1 = "=IF(RC[-1]<=20,1,0)"
    Range("I2").Select
    Selection.AutoFill Destination:=Range("I2:I1303")
    Range("I2:I1303").Select
    Rows("1:1").Select
    Selection.AutoFilter
    Selection.AutoFilter Field:=9, Criteria1:="1"
End Sub

分类筛选前20.rar

100.36 KB, 下载次数: 6

TA的精华主题

TA的得分主题

发表于 2009-8-10 09:05 | 显示全部楼层
忘记了补充一句,这个宏必须是先排好序,才能使用。

TA的精华主题

TA的得分主题

发表于 2009-8-10 14:29 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
只要品名不发生多次,只发生一次,则简单的透视也可达到分大类筛选前20,如果品名重复发生超过了1次,则透视的结果就是失真的。

透视前20.rar

43.39 KB, 下载次数: 9

TA的精华主题

TA的得分主题

发表于 2009-8-10 15:08 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
原帖由 nkgsm 于 2009-8-9 14:55 发表
分类前20名的查询或叫筛选,难度就在这个分类上,这等于是多条件的筛选,但筛选的自定义和高级筛选的条件设置是无法做到这点,如果是单条件的前20名,是很容易解决的。在上述发表的帖子上看到很多高手已经用VBA和SQL ...

这个方法类似:http://club.excelhome.net/thread-432412-1-1.html
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-27 15:41 , Processed in 0.051486 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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