浏览量:121次
计算机内的每一个字符都有一个编码相对应。例如:字符A就有一个ANCI数字代码65相对应。大写字母A-----Z相对应的编码是65-----90,小写字母a-----z相对应的编码是97-----122。CODE函数,就是返回文本字符串中第一个字符的ANCI数字代码。
一、判断每个单元格首字符是否为英文字母,包括大写字母、小写字母。
在B2单元格输入以下公式:
=OR(AND(CODE(A2)>64,CODE(A2)<91),and(code(a2)>96,CODE(A2)<123))< p="">
按下[Enter] 键后,公式将对A2单元格进行判断。双击单元格的填充柄,将
公式向下填充,结果如本文所讲。
公式说明:
本例利用CODE函数计算单元格第一个字符的字符代码,如果该代码在
65~ 90之间,或者在97~ 122之间,那么就表示首字符是字母。其中65~ 90之
间表示大写字母,97~ 122之间是小写字母。
使用注意:
(1) CODE函数用于计算文本字符串中第一个字符的数字代码,也就是说单元
格中不管有多少个字符,仅仅计算出一个字符的数字代码。
(2) CODE函数用于计算字符的字符代码,而CHAR函数可以根据字符码产
生字符,在功能上与CODE相反(也有少数情况例外)。
(3)根据本例的公式,也可以简化成如下数组公式。
=SUM(N(CODE(A2)> {64,96} ),N(CODE(A2)<{91,123}))=3< p="">
案例链接:
思考:判断单元格首字符是否为数字。
提示:数字0~9的字符码在48~ 57之间。
二、分别计算每个单元格中的数字个数。
打开数据文件,在B2单元格输入以下数组公式:
=SUM(IFERROR((CODE(MID(A2,ROW($1:$999), 1))>47)*(CODE(MID(A2,R
OW($1:$999),1))<58),0))< p="">
按下[Ctrl Shift Enter]组合键后,公式将返回A2单元格的数字个数。双击单
元格的填充柄,将公式向下填充,结果如本文所讲。
公式说明:
数字0~ 9的字符码在48~ 57之间。所以本例公式使用ROW函数生成1~ 999
的序号,再配合MID函数提取第1个、第2个.....第999个字符,接着使用CODE
函数判断它是否大于47且小于58,如果符合条件则按I参与求和,不符合条件则
按0参与求和。
之所以使用ROW($1:$999)是因为单元格中的字符通常不会超过999个字,但
有可能超过99个,从字符串中提取第一个1 ~第999个字符可以确保不产生遗漏,同时
又不会导致运算量太大。
当ROW($1:$999)生成的序列号超出实际的单元格字符数量时,MID函数只能
生成空文本,CODE函数字符空文本的字符码只能得到错误值,因此在CODE以外
需要使用IFERROR函数将错误值转换为0,然后再使用SUM函数求和。
使用注意:
字符码同时满足大于47、小于58两个条件时才是数字,因此本例公式直接将
两个表达式相乘,由于只有TRUE乘以TRUE才等于1, TRUE乘以FALSE以及
FALSE乘以FALSE都等于0,所以两个表达式相乘的结果同时满足两个条件者当作
1处理,其他条件都当作0处理。最终的结果是同时满足两个条件的字符数量。
案例链接:
思考:计算单元格中的非数字个数。
提示:将“>”改为“<=”,将“<”改为“>=”,同时将两个条件间的“*”改为“ ”。