信息函数中大部分是以IS开头的函数,主要判断Excel中各种值的数据类型,条件满足时返回TRUE。另外,还有其他相关信息函数。
信息函数虽然很多,但并不是所有信息函数都能经常用到,表3-3中列出了常用的信息函数,并进行了函数说明和示例演示。在3.2节中介绍了几个用于进行判断错误值的信息函数,这些函数经过判断后返回的均是逻辑值。
表3-3
实例34 计算1月到4月业绩大于或等于50万元的平均值
问题描述: 图3-19所示的表格中列出了1月到4月的业绩冠军姓名及其业绩金额,现在求出这4个月业绩中大于或等于50万元的平均值。
图3-19
解决方法: 首先提取B列中的业绩,然后再提取大于或等于50万元的业绩,将这些数据进行平均计算即可。
操作步骤: 此题采用了5种解法,如图3-20所示,从不同的角度去思考问题就有不同的解决方案,这也正是函数的魅力所在。
图3-20
(1)ISNUMBER法:=AVERAGE(IF(ISNUMBER(B2:B9)*(B2:B9>=50),B2:B9))
用IF函数判断,如果B2:B9区域中的值为数字类型,且大于或等于50,则返回B2:B9中对应的数字,否则返回FALSE,最后用AVERAGE函数求平均值。
(2)ISTEXT法:=AVERAGE(IF(IF(ISTEXT(B2:B9),0,B2:B9)>=50,B2:B9))
用IF函数判断,如果B2:B9区域为文本,则返回0,否则返回B2:B9区域对应的数字。这样把文本转化为0,外层再用IF函数判断数字是否大于或等于50,成立则返回B2:B9区域中对应的数字,不成立则返回FALSE,最后用AVERAGE函数求平均值。
(3)ISNONTEXT法:=AVERAGE(IF(ISNONTEXT(B2:B9)*(B2:B9>=50),B2:B9))
用IF函数判断,如果B2:B9区域中的值是非文本,且大于或等于50,则返回B2:B9区域对应的数字,否则返回FALSE,最后用AVERAGE函数求平均值。
(4)ISODD法:=AVERAGE(IF((ISODD(ROW(2:9))*(B2:B9>=50)),B2:B9))
用IF函数判断,如果B2:B9区域中对应的2到9行是奇数(因为业绩是在奇数行中),且大于或等于50,则返回B2:B9区域对应的数字,否则返回FALSE,最后用AVERAGE函数求平均值。
(5)ISEEVEN法:=AVERAGE(IF(IF(ISEVEN(ROW(2:9)),0,B2:B9)>=50,B2:B9))
用IF函数判断,如果B2:B9区域中对应的2到9行是偶数(因为偶数行中的值是文本),则返回0,否则返回B2:B9中原本的值,再在外层用IF函数判断数字是否大于或等于50,成立则返回B2:B9中对应的数字,否则返回FALSE,最后用AVERAGE函数求平均值。
N函数,将不是数值形式的值转换成是数值形式的值。表3-4列出了N函数的常见数据转换。
表3-4
值得注意的是,文本格式的数字把它当作文本处理,所以不会返回数字,而是0。逻辑值TRUE返回的是数字1,FALSE返回的是数字0。如果以后需要将逻辑值转换为数字,则也可以使用N函数。
T函数,检测给定值是否是文本值,如果是则返回原本的值,如果不是则返回空,如表3-5所示。
表3-5
N函数和T函数不支持对引用区域的转换,比如N(A1:A9)和T(A1:A9),只能转换第一个单元格,其他的单元格不会转换,但可以通过N/T(IF{1},引用区域)的方式来转换,N(IF({1},A1:A9))和T(IF({1},A1:A9))能将A1:A9区域中所有的值数组化。有些函数中的参数本身不支持数组,但通过这种方式也可以支持。
实例35 计算成绩大于或等于80分以上的学生的平均分
问题描述: 图3-21所示的表中,在“成绩”列中计算大于或等于80分的学生的平均分,“未考”与“请假”这些特殊情况均不算分,不计算在内。
图3-21
解决方法: 首先将“成绩”列中的文本转换为0,数字则不变。然后用IF函数判断,当值为非0时,返回原来的数字,当值为0时,返回FALSE。最后用AVERAGE函数求平均值,AVERAGE函数不会将逻辑值进行平均计算。
操作步骤: 如图3-22所示,首先将鼠标光标定位在D3单元格,输入数组公式=AVERAGE (IF(N(IF({1},B2:B7))>=80,B2:B7)),然后按Ctrl+Shift+Enter组合键,完成计算。
图3-22
步骤1: N(IF({1},B2:B7))将区域中的文本变成0,数字保持不变。结果为{95;41;0;92;87;0}。
步骤2: IF(N(IF({1},B2:B7))>=80,B2:B7)用IF函数对步骤1的结果进行判断,若条件成立则返回原来的值,若不成立则返回FALSE。相当于公式IF({95;41;0;92;87;0},B2:B7),运算结果为{95;FALSE;FALSE;92;87;FALSE}。
步骤 3: 将步骤 2 的结果做平均计算,相当于公式 AVERAGE({95;FALSE;FALSE;92;87;FALSE}),计算结果为91.33333,注意逻辑值是不参与平均计算的。