怎样用函数计算汉字的区位码,比如a1=吴,b1用公式得4666。
反之已知区位码,怎样得汉字。
区位码是与汉字一一对应的编码,用四位数字表示,前两位从01到94称区码,后两位从01到94称位码。 一个汉字的前一半是 ASCⅡ码为“160+区码”的字符,后一半是ASCⅡ码为“160+ 位码”的字符。每区256字。
如:A1=4666 (INT(A1/100)+160)*256或(LEFT(A1,2)+160)*256 就是所在区以前的ANSI字符集字符的数,MOD(B1,100)+160或RIGHT(A1,2)+160要查区位码在本区ANSI字符集的位置。两者相加为要查值的汉字编码。CHAR函数处理就得到汉字了。所以公式为=CHAR((LEFT(A1,2)+160)*256+RIGHT(A1,2)+160)或=CHAR((INT(A1/100)+160)*256+MOD(A1,100)+160),返回“吴”。
现在看看反函数
A1为吴 (INT(CODE(A1)/256)-160)就是所在的区,MOD(CODE(A1),256)-160就是要查汉字所在区的位,区码*100+位码就是区位码,又因为区位码是固定4位,所以公式为=TEXT((INT(CODE(A1)/256)-160)*100+MOD(CODE(A1),256)-160,"0000"),返回“4666”。