用excel归类相同部首的汉字
事情是这样开始的:很久以前做过一个汇总所有偏旁部首的quizlet,是这样的
当时只是从一个词典软件里把部首抓了下来,就放在quizlet里了。当时想法是,毕竟不是每个部首都那么容易输入,需要的时候从这里复制粘贴会比较容易。
前两天把这个东西分享给别的老师时,忽发奇想:“为什么不给每个部首后面放些例子呢???” “几个栗子?每个部首逐个输入?” “二百多个条目一条一条来?!” “拉倒吧!”
我不想做简单无差别的体力劳动,但我要把所有汉字都放进去。。做成这样:
怎么搞?
说实话,我不太擅长弄字卡之类的东西:毫无逻辑,零散无序,每次用完都要整理。所以但凡需要展示汉字,我都用excel。教中文这么久,汉字一直被我当成数据库中的一列数据,通过各种索引方法,随时抽调出需要的组合:一课书里的生字,一学期的复习,高频字,同音字,同笔画字。。。。
扯远了。继续说怎么搞。既然要按部首分类,那么:
第一步,找到按部首索引的字表:
好在之前收藏了一个字典软件的库文件:
因为只需要汉字和部首,所以要对这个表加工一下:去掉拼音列,并排序:
黄老师问我这是按什么排的序?答曰:偏旁的发音。是的,偏旁有发音,是按字源字来读的。“双人旁”是部首的名字,人家发音是chì。为什么要这么排序?不为什么,excel默认的。其实排不排序也无所谓,我习惯先排一下而已。
然后,第二步,分类汇总:
就变成这样了:
本以为大功告成,然后随便用个函数就可以合并单元格内容。
但试了phonetic函数,失败。英文版的excel不支持:
又试了textjoin和其他几个,依然无果,都查不出问题在哪里:
怎么办?难不成用“&”一个一个去拼接,或是一个一个字copy?开玩笑,七千多字的通用字表。即便按部首算,二百多个部首,工程也太过浩繁。所以只能通过合理的算法,填充公式解决(不会VBA,万事靠公式)。
怎么计算?想不出来。。不是我迟暮,只是懒得自己想算法。幸好找到了这篇文章:
《聊聊EXCEL中的合并同类项》
http://club.excelhome.net/forum.php?mod=viewthread&tid=1224302&page=1#pid8337863
(说句题外话,任何时候,这个论坛都能提供完美的解决方案。无论多么奇葩的问题,你都不用自己发帖提问,肯定已经有人问过,而且解决方法绝不只有一种)
公式如下:
通过if函数进行判断:如果第二行和第一行的部首一样,则在c2这个单元格里把第二行的汉字加上逗号再加上第二行的汉字,否则,显示第二行汉字。(如果觉得拗口,就别看这段了。一会儿抄答案就行了。)
然后把这个公式向下填充。果然7000多行的数据有点儿多,电脑跑了好一阵才完成:
到这里,估计勤快的人已经去每个部首最后一行复制数据了。二百多个部首,每个复制粘贴的动作即便只需要两秒钟,那也得干十来分钟啊。。。我宁可花十五分钟找个合适的公式。。
所以现在需要对数据进一步索引,找出每个部首字最多的那一行。
花开两朵,各表一枝。用前面图4那张表,做个数据透视表,做好备用:
上面这个表其实也没什么用,只是为了提取所有的部首。并以此为基准,用lookup函数查找字最多的那一行,所以只需要把上图A列内容复制到图10的表格里,然后填充这个公式:
具体原理,去读刚才提到的那篇文章吧。
至此,大功基本告成。把这两列内容导入quizlet便完成了最初的构想。quizlet地址如下:https://quizlet.com/296989277/flash-cards/
(其实完全可以找个在线字典把部首索引页复制过来。)
说实话,这东西对教学来讲,没有什么实际意义。做这个只是出于对奇技淫巧的痴迷而已。如果一定说有用的话,用这个方法,随时可以把学生学过的字按部首整理出来,类似《部首小字典》的功能。
但怎么能很快的把学过的字,而不是全部汉字,按部首排序呢?以后有空聊聊vlookup这个函数吧。如果急需的话也可以告诉我,可以按需订制。
聪明的你一定会想到更实用的方法,把这个分类方式用在教学中。有任何想法,敬请留言。
Patrick 徐老师
2018年5月23日 于美国
还找什么呢?
不用往下翻了。没有彩蛋,不用扫码,也没有下载链接。