
第三节 逻辑与文本函数
一、IF函数
IF(logical_test,value_if_true,value_if_false)函数
(1)功能说明。
根据逻辑条件计算的真假值,返回不同结果。
(2)参数说明。
①参数logical_test是逻辑判断条件。
②参数value_if_true是当逻辑判断条件为(TRUE)真时,IF函数返回的结果。
③参数value_if_false是当逻辑判断条件为(FALSE)假时,IF函数返回的结果。
(3)注意事项。
IF函数可以嵌套,但嵌套的级数最多不能超过7级。如果要检测多个条件,可以使用后面章节中的LOOKUP、VLOOKUP或HLOOKUP函数。
(4)应用举例。
以60分为界限,根据具体的分数判断成绩是否及格,如图2-4所示。

图2-4 判断成绩是否及格
二、OR函数
OR(logical1,logical2,…)函数
(1)功能说明。
所有参数逻辑值为假时,返回FALSE;只要一个参数逻辑值为真,即返回TRUE。
(2)参数说明。
logical1,logical2,…是待检验的1—30个条件,各条件值可为TRUE或FALSE。
(3)注意事项。
参数必须能计算为逻辑值,如TRUE或FALSE,或者为包含逻辑值的数组或引用。如果数组或引用参数中包含文本或空白单元格,则这些值将被忽略。如果指定的区域中不包含逻辑值,函数OR返回错误值#VALUE!。可以使用OR数组公式来检验数组中是否包含特定的数值。
(4)应用举例。
=OR(2>3,4<5,6>3)的运算结果为TRUE。
因为在2>3,4<5,6>3三个逻辑条件中有一个6>3运算结果为TRUE。
三、AND函数
(1)功能说明。
所有参数逻辑值为真时,返回TRUE(真);只要一个参数逻辑值为假,即返回FALSE(假)。
(2)参数说明。
logical1,logical2,…是待检验的1—30个条件,各条件值可为TRUE或FALSE。
(3)注意事项。
参数的计算结果必须是逻辑值(如TRUE或FALSE),而参数必须是包含逻辑值的数组或引用。如果数组或引用参数中包含文本或空白单元格,则这些值将被忽略。如果指定的单元格区域未包含逻辑值,则AND函数将返回错误值#VALUE!。
(4)应用举例。
【例2-3】设定会计学、审计学、财务管理学三科成绩均大于80分输出结果为TRUE(优秀),否则FALSE(不优秀),如图2-5所示。

图2-5 计算结果
【例2-4】设定会计学、审计学、财务管理学三科成绩均大于80分输出结果为“优”。如图2-6所示。

图2-6 计算结果
四、LEN(text)函数
(1)功能说明。
返回文本字符串中的字符数。
(2)参数说明。
参数text是要查找其长度的文本,空格将作为字符进行计数。
(3)应用举例。
公式=LEN("DGGFG123VV")的运算结果为10,即共有10个字符。
五、LEFT、RIGHT与MID函数
1.LEFT(text,num_chars)函数
(1)功能说明。
LEFT函数用于从一个文本字符串的第一个字符开始返回指定个数的字符。
(2)参数说明。
①next是包含要提取字符的文本字符串,或对含有字符单元格的引用。
②num_chars为提取字符的个数。
(3)注意事项。
①num_chars必须大于或等于0。
②如果num_chars大于文本长度,则LEFT函数返回所有文本。
③如果省略num_chars,则假定其为1。
(4)应用举例。
【例2-5】根据身份证号提取年龄。
公式与公式计算结果如图2-7所示。

图2-7 根据身份证号提取年龄
2.RIGHT(text,num_chars)函数
(1)功能说明。
用于从一个文本字符串的最后一个字符开始返回指定个数的字符(包括空格)。
(2)参数说明。
①next是包含要提取字符的文本字符串。
②num_chars为提取字符的个数。
(3)注意事项。
①num_chars必须大于或等于0。
②如果num_chars大于文本长度,则RIGHT返回所有文本。
③如果省略num_chars,则假定其为1。
(4)应用举例。
公式=RIGHT("ASDFGHK",3)的运算结果为“GHK”。
3.MID(text,start_num,num_chars)函数
(1)功能说明。
返回文本字符串中从指定位置开始的特定数目的字符,该数目由用户指定。
(2)参数说明。
①next是包含要提取字符的文本字符串。
②ntart_num是文本中要提取的第一个字符的位置。
③num_chars是指定希望MID从文本中返回字符的个数。
(3)注意事项。
①如果参数start_num大于文本长度,则MID从返回空文本(“”)。
②如果start_num小于1,则MID返回错误值#VALUE!。
(4)应用举例。
【例2-6】根据身份证号提取出生年月。
公式与公式计算结果如图2-8所示。

图2-8 根据身份证号提取出生年月
六、CONCATENATE函数
CONCATENATE(text1,text2,…)函数
(1)功能说明。
将几个文本字符串合并为一个文本字符串。
(2)参数说明。
参数text1,text2,…是1—30个参数,即要合并的文本项。
(3)注意事项。
用“&”运算符可以代替CONCATENATE函数实现文本项的合并。
(4)应用举例。
公式=CONCATENATE("张"&"军")的结果为“张军”。
七、REPLACE函数
REPLACE(old_text,start_num,num_chars,new_text)
(1)功能说明。
用指定的字符数的文本字符串替换某文本字符串的部分文本。
(2)参数说明。
①old_text是要替换其部分字符的文本。
②start_num是要用new_text替换的old_text中字符的位置。
③num_chars是希望REPLACE使用new_text替换old_text中字符的个数。
④new_text是要用于替换old_text中字符的文本。
【例2-7】将电话号码升位(假设北京地区电话号码前加6、上海地区电话号码前加2,天津地区电话号码前加8),并用分隔区号显示。
D3单元格的公式为:
=IF(B3="北京",REPLACE(C3,1,3,"0106"),IF(B3="上海",REPLACE(C3, 1,3,"0212"),IF(B3="天津",REPLACE(C3,1,3,"0228"))))
E3单元格的公式为:=LEFT(D3,3)&"-"&RIGHT(D3,8)
其他单元格的运算利用填充柄完成,结果如图2-9所示。

图2-9 电话号码升位
八、FIXED函数
FIXED(number,decimals,no_commas)
(1)功能说明。
用于将小数点四舍五入到特定位数,并返回带或不带逗号的文本。
(2)参数说明。
①number是要进行四舍五入并转换成文本字符串的数值。
②decimals为小数点右边的位数。
③no_commas为一逻辑值,指示返回的文本中是否显示逗号,为TURE时不显示逗号,省略或FALSE是显示逗号。
(3)应用举例。
公式=FIXED(68.615,2 FALSE)的运算结果为“68.62”。