#职场excel小技巧#
我们知道,汉字排序最常见的是拼音排序,拼音排序在Excel中是默认的汉字排序方式。
但是,如果要对汉字按部首排序呢?
Excel中要如何操作?
01Excel中对汉字默认的排序是拼音顺序
在Excel中,对汉字的默认排序方式是按拼音排序:
所以不借助PowerQuery,是无法实现对汉字的按部首排序的。
02PowerQuery对汉字的默认排序规则是按部首排序
PowerQuery中对汉字进行排序时,就不是按照拼音排序,而是按照部首排序。
注意看红圈处,是对汉字列进行了升序排列,注意【部首】列,可以看到排序是按照部首排序的。
再仔细观察【笔画数】列,会发现PowerQuery对汉字按部首进行排列后,会进一步按照笔画多少来排列。
那为什么截图中的【部首】列数据是混乱的呢?这个话题我们待会儿讲。
所以,如果要对汉字进行排序,直接将其引入到PowerQuery查询中,然后对其进行排序就行了。
下面简述一下步骤。假设您已经安装了Excel2016及以上版本,或者其他低版本已经安装并启用了PowerQuery插件。
1.引入要排序的汉字到PowerQuery中。
确保要排序的汉字都在Excel的一个sheet或一个table中,并确保一个汉字占据一个单元格,然后点击【数据】选项卡,选择【自区域/表】,将要排序的汉字引入PowerQuery查询:
2.然后选中【汉字】列,选择升序或者降序排列。
3.将结果加载到新的表格,即完成排序。
03按笔画排序的关键是汉字和笔画的映射关系
对我们普通用户而言,汉字按笔画排序其实没有太多技巧而言,就是找到汉字与笔画的一一对应关系,有这个对应关系之后,排序就是水到渠成的了。
目前我能找到的这类映射集,是一个包括全部20902个汉字的全拼(拼音部分没有音调,而且个别注音有误,如 囍,猤,啹等字,使用需注意)、五笔、郑码、UNICODE、GBK、笔画数、部首,以及笔顺编号。
这是一个文本文件,由于百家号限制,无法在本文中全部给出,只列出部分:
有了这个映射集之后,对汉字进行拼音、笔画、部首乃至混合排序,都很好办了。
04在Excel的PowerQuery中实现汉字按笔画排序
用Excel的PowerQuery来对汉字进行按笔画排序很简单。
1.引入要排序的汉字到PowerQuery前面已经详细讲过,不赘述。
2.然后引入文本格式的映射集到PowerQuery中。
同样点击【数据】选项卡,选择【从文本/CSV】,找到映射集txt文件所在的路径,将其引入到PowerQuery中。
由于映射集的txt文件是用数量不等的空格实现的分列,所以在PowerQuery中要实现有效分列有点罗嗦,这里就不及Excel中分列来得方便了——可以直接把连续的标识符当作一个来对待。
我是每次只用最左边的空格分列,然后对分出来的列进行【清除】操作,删去多余的空格,再继续分列,一直操作了七八次才全部完成。
如果直接用空格分列,可能会分出五十几列出来,那并不是我们想要的。
可以看到我主要的操作都是在分列。分列完毕后提升标题,就算把映射集导入到PowerQuery查询了。
3.用合并查询,选择JoinKind为Inner,将要排序的汉字与映射集建立一一对应关系,以获取排序需要用到的笔画字段。
4.然后在PowerQuery中完成排序。
选中要排序的【笔画数】列,然后选择升序或降序排列。
5.加载排序结果到Excel表格。
命令是灰色是因为我默认设置的只加载链接。如果您没设置过,就不会是灰色。就算灰色也没关系,直接加载后,到Excel中去右键选中这个查询,点【加载到…】,选【表】即可。
05在Excel中实现对汉字进行混合式排序
还是需要借助映射集,在PowerQuery中完成,操作也非常简单。
在PowerQuery中先对第一优先级的列进行排序,然后再对第二优先级的列进行排序,以此类推。
06结语
前面截图中出现的【部首】列顺序怎么和PowerQuery的按部首排序不一致?原因在于我这个【部首】列的数据来自于映射集,而映射集是网友制作,其逻辑和PowerQuery不尽一致。比如下面红圈处:
当一个汉字有多个部首时,PowerQuery采用的是笔顺靠前的部首:【一】的笔顺显然排在【丿】和【业】之前;而网友制作的映射集,确定部首时,是优先考虑该部首在整个汉字中的笔顺顺序。
总结下,在Excel中对汉字实行多种排序的方法:
按拼音排序,直接在Excel表格中进行排序;按部首排序,直接在PowerQuery中进行排序;按笔画排序,需要借助映射集在PowerQuery中实现排序;混合式排序,同样需要借助映射集在PowerQuery中实现排序。以上就是我总结的汉字在Excel中的多种排序技巧,你都get到了吗?
如果觉得我的文章对您有帮助,点个赞咯,评论下咯,收藏下咯,关注下咯,谢谢。
举报/反馈