ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] VBA 数组排序

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-9-22 10:08 来自手机 | 显示全部楼层
ynzsvt 发表于 2024-9-22 09:58

不错啊再努力下就超过我了

TA的精华主题

TA的得分主题

发表于 2024-9-22 10:17 来自手机 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
sunya_0529 发表于 2024-9-21 22:26
这个速度很赞了~



SQL处理各种特色的排名只需要换不同的函数,20多年前就全部准备好了,1句2行,瞬间秒杀。

TA的精华主题

TA的得分主题

发表于 2024-9-22 11:40 | 显示全部楼层
一招秒杀 发表于 2024-9-22 09:24
1句2行,0.07秒,这个如何

SQL,你自己玩去吧,普通小白不会用,现在流行JSA了,用JSA写一个,也不比你的慢多少

微信截图_20240922113523.png

TA的精华主题

TA的得分主题

发表于 2024-9-22 11:46 | 显示全部楼层
一招秒杀 发表于 2024-9-22 10:17
SQL处理各种特色的排名只需要换不同的函数,20多年前就全部准备好了,1句2行,瞬间秒杀。

不可否认,SQL在处理数据集时效率很高,通常在做数据管理的时候也经常需要VBA+ADO来处理。

不过具体问题具体分析,单纯从操作的便利性上看,你把数据从Excel中导入到SQL工具软件中,写好代码处理好再导出来放在Excel中,这个中间的时间成本也要考虑的。另外,如果楼主的这个问题,排名分很多种,不是简单地取Top N的话(或者即使是Top N的话,N一直会变化),导数据、写SQL语句、导结果这个操作要多来几遍?!

能“秒杀”值得点赞,不过还是友情提醒一下,高调分享、低调做人,你的优秀大家看得到,也会为你点赞喝彩的,所以少说多做不加戏,加油

TA的精华主题

TA的得分主题

发表于 2024-9-22 13:26 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
lizhipei78 发表于 2024-9-22 11:40
SQL,你自己玩去吧,普通小白不会用,现在流行JSA了,用JSA写一个,也不比你的慢多少

看到你的代码 相对前面网友的来说 还算短的,顺便就让人工智能帮我逐行解释了一下,顺便吧自己写的那句SQL语句让它对比一下,它就有以下的评论(见附图)。对于我来说,一条语句可以解决的问题,无论如何 不会有耐心和动力再去考虑用几十行代码来解决,可能这也是一种  思维短路 吧。
SQLJSA1.png
SQLJSA2.png
SQLJSA3.png
SQLJSA4.png
SQLJSA5.png
SQLJSA9.png

TA的精华主题

TA的得分主题

发表于 2024-9-22 15:42 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

循环调用TEXT函数影响速度。 image.png

点评

确实,JS在处理日期值(数值还是文本)时有时候会跟想象的对不上,所以加了一个Text(),模拟数据是统一生成的,没有这个问题,注释掉也不影响。  发表于 2024-9-22 15:55

TA的精华主题

TA的得分主题

发表于 2024-9-22 15:49 | 显示全部楼层
lizhipei78 发表于 2024-9-21 23:23
经对比,还是我的方法快,又简单,代码在2楼,

向你学习!我慢在创建了30多个对象上

TA的精华主题

TA的得分主题

发表于 2024-9-22 19:30 | 显示全部楼层
本帖最后由 一招秒杀 于 2024-9-22 20:12 编辑
sunya_0529 发表于 2024-9-22 11:46
不可否认,SQL在处理数据集时效率很高,通常在做数据管理的时候也经常需要VBA+ADO来处理。

不过具体问 ...


SQL Server 可以通过OpenRowSet等 直接读取和更新 Excel 数据,前面我只是习惯性导入后再操作,就算数据在数据库,简单复制粘贴就可以快速导出到Excel。

SQL 很多年前就提供了多种排名函数,并且已经成为 SQL 标准。见附图。

对于不同种类的排名需要,参考一下37楼,把Row_Number换成不同的排名函数就可以了。
用过 对比过 才会 更深刻体会领会到它的各种好。
排名函数.png
排名函数年线.png
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-19 02:46 , Processed in 0.040399 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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