ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

按百家姓先后对姓名进行排序

[复制链接]

TA的精华主题

TA的得分主题

发表于 2008-1-26 15:13 | 显示全部楼层 |阅读模式

最近几天忙一个会议资料,其中有候选人若干,领导让我对候选人进行排序,拼音、笔画、百家姓,几种方法都要用到,总之是想把那么几个人排在比较理想的位置。

拼音、笔画经松搞定,百家姓?有这种排序法吗?赵钱孙李周吴郑王,难不成我还要对照着口诀一个一个排?

想了一法,也是轻松搞定,不知别人是否早就想到或者有更简单的方法,暂且写出来吧。

1、下载百家姓,将口诀在WORD中编成一段话。

2、新建EXCEL,将这段话放到SHEET1A1中。

3、在SHEET2A1中输入=MID(Sheet1!$A$1,ROW(B1),1),鼠标放在右下角变成十字时按住向下拉,一直到把百家姓分解完成,我这有568行。在B1B2单元格分别输入12,选取两个单元格,鼠标放在右下角变成十字时双击。

4、将候选人在WORD中编成一行只有一个人(如果原来是以、或空格为分隔符的话,只需将其替换为换行符即可),全选复制到SHEET3 A列。在B1单元格输入=LEFT(A1,1)C1单元格输入=VLOOKUP(B1,Sheet2!A:B,2,FALSE),选取B1C1,鼠标放在C1右下角变成十字时双击。这时每个姓分别对应了一个数字,再对它进行排序应该没问题了吧。

弄完之后也是觉得挺有意思的,呵呵,居然还有这种排序方法?居然被我轻松解决?

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-1-26 15:15 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

写完了顺便谈一点感想:

其实EXCEL这个工具在我们的日常工作之中应用非常广泛,对于这种“简单的重复劳动”,我第一个想到的就是EXCEL,我很迷信EXCEL的强大,自从我学习了VBA后更是如此。事实上我对VBA的掌握要远远胜过对基础应用中函数的掌握,虽然我也知道用函数要简单的多。

 

 

 

下面继续谈我是怎么一步一步走下来的:(高手可以离开了,下面的文字只希望对新手有一点启发作用)

我首先是在网上用“百家姓
  
排序”进行了搜索,看有没有哪位师傅有什么经验之谈,结果很遗憾,只找到了“赵钱孙李周吴郑王……”,不过也算有收获,复制到WORD中先,但下一步怎么搞,没想到,反正我是不会对照口诀一个一个去排的,走一步算一步,最后实在不行了,就只有写宏了,多走一步,就少写一段宏。

口诀复制了,下一步自然就是将姓从其中剥离,我知道VBA中有一个MID,在函数中一找,也有,按提示先把“赵”分离出来,,写上=MID(Sheet1!A1,1,1),向下一拉,不对,哦,原来Sheet1! A1变成了A2,将其修改为Sheet1!$A$1,再拉还不行,后面的这个1不动,自然这个1也要想办法改动才行,在函数的“查找与引用”中一看,有一个ROW,这个我在VBA中经常用,修改,再拉,OK了,一直拉完。姓分出来还是不能用来进行排序,自然就想到了一个姓对应一个数字了,在B列写上12,复制。

走到这里了,既然要对候选人排序,自然要将姓名一个一个分开才行,复制到了EXCEL,自然也要将姓从姓名中剥离,当然不剥离也可以,再下一步多用一个函数就好,刚才用了MID,这时自然想到LEFT(当然,继续用MID也可以)。下一步就是要通过姓查找SHEET2中对应的数字了,我对LOOKUP有一点印象,把相关函数(lookup,Hlookup,Vlookup)的帮助看一下,试一下就OK了。

[此贴子已经被作者于2008-1-26 15:20:57编辑过]

TA的精华主题

TA的得分主题

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

以百家姓排序

1分钟内完成(不管1000行还是10000行)


按百家姓先后对姓名进行排序

按百家姓先后对姓名进行排序

TA的精华主题

TA的得分主题

 楼主| 发表于 2008-1-26 15:49 | 显示全部楼层
呵呵,还是版主厉害!好像是2007吧,看来我的版本要升级了。

TA的精华主题

TA的得分主题

发表于 2008-1-26 16:02 | 显示全部楼层
2003版的自定义序列的行数是有限制的,不足以生成百家姓序列,不知道2007的限制是多少?

TA的精华主题

TA的得分主题

发表于 2008-1-26 16:04 | 显示全部楼层
QUOTE:
以下是引用gvntw在2008-1-26 16:02:21的发言:
2003版的自定义序列的行数是有限制的,不足以生成百家姓序列,不知道2007的限制是多少?

我收集的百家姓共437个。http://zhidao.baidu.com/question/23148486.html

该贴中声称“单姓四百四十四个,复姓六十个”。事实上复制到Excel计算只有437个。


2007中生成437个是完全可以的,经我的测试,可以生成802个序列。

2003也是可以生成437个百家姓的,只不过不能用最直接最简单的方法完成。

利用自定义函数可以30秒钟之内完成。关键在于准确。

前面的方法当遇到复姓时就可出错。如“欧阳振华”和“欧英”两人姓是不同的。用自定义函数可以解决这个问题。

然后利用自定义排序,以百家姓方法排序,30秒钟搞定。


[此贴子已经被作者于2008-1-26 16:50:32编辑过]
bvSdxnVj.gif

TA的精华主题

TA的得分主题

发表于 2008-1-27 13:59 | 显示全部楼层

不只437吧,从罗兄给的链接里复制出来的:

赵钱孙李 周吴郑王 冯陈诸卫 蒋沈韩杨 朱秦尤许 何吕施张
孔曹严华 金魏陶姜 戚谢邹喻 柏水窦章 云苏潘葛 奚范彭郎
鲁韦昌马 苗凤花方 俞任袁柳 酆鲍史唐 费廉岑薛 雷贺倪汤
滕殷罗毕 郝邬安常 乐于时傅 皮卡齐康 伍余元卜 顾孟平黄
和穆萧尹 姚邵堪汪 祁毛禹狄 米贝明臧 计伏成戴 谈宋茅庞
熊纪舒屈 项祝董粱 杜阮蓝闵 席季麻强 贾路娄危 江童颜郭
梅盛林刁 钟徐邱骆 高夏蔡田 樊胡凌霍 虞万支柯 咎管卢莫
经房裘缪 干解应宗 丁宣贲邓 郁单杭洪 包诸左石 崔吉钮龚
程嵇邢滑 裴陆荣翁 荀羊於惠 甄魏家封 芮羿储靳 汲邴糜松
井段富巫 乌焦巴弓 牧隗山谷 车侯宓蓬 全郗班仰 秋仲伊宫
宁仇栾暴 甘钭厉戎 祖武符刘 景詹束龙 叶幸司韶 郜黎蓟薄
印宿白怀 蒲台从鄂 索咸籍赖 卓蔺屠蒙 池乔阴郁 胥能苍双
闻莘党翟 谭贡劳逄 姬申扶堵 冉宰郦雍 却璩桑桂 濮牛寿通
边扈燕冀 郏浦尚农 温别庄晏 柴翟阎充 慕连茹习 宦艾鱼容
向古易慎 戈廖庚终 暨居衡步 都耿满弘 匡国文寇 广禄阙东
殴殳沃利 蔚越夔隆 师巩厍聂 晁勾敖融 冷訾辛阚 那简饶空
曾毋沙乜 养鞠须丰 巢关蒯相 查后荆红 游竺权逯 盖后桓公
万俟司马 上官欧阳 夏侯诸葛 闻人东方 赫连皇甫 尉迟公羊
澹台公冶 宗政濮阳 淳于单于 太叔申屠 公孙仲孙 轩辕令狐
钟离宇文 长孙慕容 鲜于闾丘 司徒司空 亓官司寇 仉督子车
颛孙端木 巫马公西 漆雕乐正 壤驷公良 拓拔夹谷 宰父谷粱
晋楚闫法 汝鄢涂钦 段干百里 东郭南门 呼延归海 羊舌微生
岳帅缑亢 况后有琴 梁丘左丘 东门西门 商牟佘佴 伯赏南宫
墨哈谯笪 年爱阳佟 第五言福 百家姓终

TA的精华主题

TA的得分主题

发表于 2008-1-27 18:46 | 显示全部楼层
QUOTE:
以下是引用gvntw在2008-1-27 13:59:01的发言:

不只437吧,从罗兄给的链接里复制出来的:

该贴有4个答案

前3个都一样,以司马结束,共437个姓氏

第4个答案中有483个姓氏

我采用了前三个相同的答案.

TA的精华主题

TA的得分主题

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

回家快点装2007了,呵呵!

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

本版积分规则

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

GMT+8, 2024-11-22 09:03 , Processed in 0.050622 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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