在EXCEL中如何批量查询汉字的区位码
在高考及各种资格考试中,填写报名卡时需要将有些信息的汉字转换成区位码。
如果一个汉字一个汉字的去查手册,不仅速度慢,而且还容易出错,下面我们以EXCEL的几个函
数来快速批量查询汉字的区位码。
一、首先介绍一下汉字区位码的推算方法。
区位码与汉字是一一对应的编码,用四位数表示,前两位从01到94称为区码,后两位从
01到94称为位码。一个汉字的前一半是ASCII码为“160+区码”的字符,后一半是ASCII码为
“160+位码”的字符,每区256个字,由此,可以得到汉字内码与区位码之间的转换关系。
内码=(区码+160)*256+(位码+160)
区码=int(内码/256)-160
位码=mod(内码,256)-160
区位码=区码*100+位码
二、利用EXCEL函数如何实现查询功能
图一
如图一所示,在sheet2工作表中,A3单元格至A19单元格中输入了姓名,我们想在B3单元格
至B19单元格中输出姓名中第一个汉字的区位码,在C3单元格至C19单元格中输出姓名中第二个
汉字的区位码,在D3单元格至D19单元格中输出姓名中第三个汉字的区位码。
1、如图二所示,
图二
点“插入”-“名称”-“定义”,在“在当前工作簿中的名称中”栏中输
入“区码”,在“引用位置”栏内输入“=INT(CODE(MID(Sheet2!$A3,COLUMN(Sheet2!A:A),1))/256-160)*100”
这个公式里涉及到四个函数,其中:
第一个函数:COLUMN(参数一),返回参数一所示的单元格或单元格区域所在的列标号
第二个函数:MID(参数一,参数二,参数三)是截取字符串函数,参数一是被截取的数符串,
参数二是从第几个字符开始截取,第三个参数是截取几个字符。
第三个函数:CODE(参数一)返回参数一所示字符的内码
第四个函数:INT(参数一)是一个取整函数,只保留数字的整数部分,去掉小数部分。
2、如图三所示,
图三
点“插入”-“名称”-“定义”,在“在当前工作簿中的名称中”栏中输
入“位码”,在“引用位置”栏内输入“=MOD(CODE(MID(Sheet2!$A3,COLUMN(Sheet2!A:A),1)),256-160)”
这个公式里也涉及到四个函数,其中有三个函数与第一个公式相同,只有MOD(参数一,参数二)是新
出现的函数,这是一个取余函数,是指参数一除以参数二后的余数。
3、在B3单元格内输入“=TEXT(区码+位码,"0000")”,这个函数是将第一个数值型参数以第二个参数所示
的格式转换成文本型数值。
4、拖动B3单元格右下角的十字光标,复印公式到D3单元格
5、选择B3至D3单元格,拖动右下角的十字光标,向下拖动到D19单元格
此时,可以看到,B3至d19单元格内输出了所有汉字的区位码。
三、根据区位码反查汉字的计算公式
如果您对以上三个公式已经理解的话,那么,下面的根据区位码反查汉字的计算公式也就不难理解了。
假如B3单元格内是一个四位数字的区位码,可以使用下面的公式反查汉字:
=CHAR((INT(B3/100)+160)*256+MOD(B3,100)+160)