Excel 判断逻辑关系

逻辑判断是指有具体意义,并且可以判断真或假的陈述语句,是函数公式的基础,不仅关系到公式的正确与否,也关系到解题思路的简繁,只有逻辑条理清晰,才可以写出简洁有效的公式。常用的逻辑关系有3种,即“与”、“或”、“非”。在本节首先讲解这3种逻辑关系,接着讲解逻辑关系的嵌套和运算。

与(AND关系)

当两个或者多个条件必须同时成立才判定为真时,称判定与条件的关系为逻辑与关系,即平时说的“且”,AND函数常常用于逻辑与关系运算。

例1:用公式表示当A1单元格的值大于0且小于等于10的时候返回TRUE。


=AND(A1>0,A1<=10)

例2:B列是性格,C列是年龄,D列是职务,要在E列中输入公式,筛选出40岁以上的男教授的记录。其中,E1的公式为


=AND(B1=""C1>40D1="教授")

或(OR关系)

当两个或多个条件只要有一个成立就判定为真时,称判定与条件的关系为逻辑或关系,OR函数经常用于逻辑或关系运算。

例:A、B、C三列分别是语文、数学、英语成绩,要在D列中输入公式筛选所有不及格的记录(假设60分及格),其中D1的公式为


=OR(A1<60,B1<60,C1<60)

非(NOT关系)

当条件只要成立就判定为假时,称判定与条件的关系为逻辑非关系。NOT函数用于将逻辑值反转。

例:A列存放着人员学历,分为中专、高中、大专、本科、硕士等,现在需要在B列输入公式筛选除硕士以外的记录,其中B1的公式为


=NOT(A1="硕士")

也可以利用下面的公式表示:


=A1<>"硕士"

上面简单介绍了几种逻辑关系,接下来就逻辑关系的嵌套展开论述。

函数IF(logical_test,value_if_true,value_if_false)的第一个参数判定真假,为真返回第2个参数,为假返回第3个参数。如果第2个参数和第3个参数还需要进一步判断,这时新的逻辑判断作为参数嵌套于原有判断,在执行原有判断的基础上进行。

例:A1为成绩,要求用公式在B1返回成绩等级,规则为“成绩低于60分为不及格,60~79分为及格,80~89分为良,90~100分为优”。

1)简单地堆积条件。例如分数在60~79分段时表达为AND(A1>=60,A1<80),其他类似。得到的公式如下所示。


=IF(A1<60,"不及格",IF(AND(A1>=60,A1<80),"及格"IF(AND(A1>=80,A1<90),"", IF(AND(A1>=90,A1<100),""))))

2)归纳整理。如果A1不低于60,即第1个参数为假的同时已经包含“A1>=60为真”的判定了。利用这个逻辑关系的嵌套,正确的公式表达如下:


=IF(A1<60,"不及格",IF(A1<80,"及格",IF(A1<90,"","")))

以上介绍了逻辑关系的嵌套,下面讲解逻辑关系的运算等有关技巧。

在实际应用中,逻辑值是可以直接参与函数公式计算的,通常可以看到以下实例的解法。

例1:查找B1在A1:A10数据区域中是否存在的公式1为


=IF(COUNTIF(A1:A10,B1),"存在","")

例2:统计A1:A10数据区域中大于“0”的数值个数的公式2为


=SUM((A1:A10>0)*1)

为什么公式1中IF的条件判断不用“COUNTIF(A1,A10,B1)>0”,而公式2中为什么要在SUM函数中使用“*1”?

为了解释以上问题,先来了解以下几种逻辑值之间的运算结果。


TRUE*1=1*1=1(TRUE+0=1)
FALSE*1=0*1=0(FALSE +0=1)
TRUE+FALSE=1+0=1
TRUE*TRUE=1*1=1
TRUE*FALSE =1*0=0
TRUE+TRUE=1+1=2

根据上面列举的计算准则,以上6项计算简单列举了常用逻辑运算的结果,这也是在数组公式运算中常见的、最常用的理论关系。

了解了以上的运算符,再来看公式1,由于COUNTIF函数统计结果只能为非负数(结果大于或等于0),那么如果B1存在,COUNTIF函数结果必定大于0,否则结果等于0,所以就可以不用添加“>0”进行判断。

而对于公式2,如果SUM函数的参数是数组,而且这个数组是由逻辑值组成,那么要对这些逻辑值求和,就必须先将逻辑值进行运算(*1或者+0),SUM函数才可以正确求和。

Excel 判断对象是否为除#N/A外的错误值:ISERR函数

如果需要检测一个值是否为除#N/A以外的错误值,可通过ISERR函数实现。

ISERR函数的语法为:=ISERR(value),其中value参数为需要进行检验的数值。若检测参数为除#N/A以外的错误值,将返回逻辑值TRUE,否则返回FALSE。

下面举例说明ISERR函数的使用方法。

01 在“A2”单元格中输入需要测试的数据,本例输入值“#NUM!”。

02 在需要显示结果的单元格中输入公式:=ISERR(A2),然后按下“Enter”键确认即可。

alt

Excel 判断测试对象是否为#N/A错误值:ISNA函数

如果需要检测单元格中的值是否为#N/A错误值,可通过ISNA函数实现。

ISNA函数的语法为:=ISNA(value),其中value参数为需要进行检验的数值。若检测参数为#N/A错误值,将返回逻辑值TRUE,否则返回FALSE。

下面举例说明ISNA函数的使用方法。

01 在“A2”单元格中输入需要测试的数据,本例输入值“#N/A”。

02 在需要显示结果的单元格中输入公式:=ISNA(A2),然后按下“Enter”键确认即可。

alt

Excel 判断测试对象是否为空单元格:ISBLANK函数

如果需要判断测试对象是否为空单元格,可使用ISBLANK函数实现。ISBLANK函数的语法为:=ISBLANK(value),其中value参数为需要进行检验的数值。若测试对象为空单元格,将返回逻辑值TRUE,否则返回FALSE。

如果不知道用哪个函数进行处理,还可以通过“插入函数”对话框来选择,在其中可看到所选函数的功能。下面以判断“A2”单元格是否为空单元格为例,具体操作如下。

01 选中需要输入公式的单元格。

02 切换到“公式”选项卡,单击“函数库”选项组中的“插入函数”按钮,弹出“插入函数”对话框。

03 在“类别”下拉列表框中选择“信息”函数类型,在下方的列表框中选择ISBLANK函数,单击“确定”按钮。

04 弹出“函数参数”对话框,输入需要检查的单元格,然后单击“确定”按钮即可。

alt

Excel 判断测试对象是否为逻辑值:ISLOGICAL函数

如果需要判断测试对象是否为逻辑值,可使用ISLOGICAL函数。ISLOGICAL函数的语法为:=ISLOGICAL(value),其中value参数为需要进行检验的数值。若测试对象为逻辑值,将返回逻辑值TRUE,否则返回FALSE。

以判断“A2”单元格中的值是否为逻辑值为例,具体操作如下。

01 在“A2”单元格中输入需要测试的数据值。

02 在需要显示结果的单元格中输入公式:=ISLOGICAL(A2),然后按下“Enter”键确认即可。

alt

Excel 判断数值是否为奇数:ISODD函数

如果需要判断单元格中的数值是否为奇数,可通过ISODD函数实现。

ISODD函数的语法为:=ISODD(number),其中number参数为指定用于检测是否为奇数的数据。若测试对象为奇数,将返回逻辑值TRUE,否则返回FALSE。

下面举例说明ISODD函数的使用方法。

01 在“A2”单元格中输入需要测试的数据值,本例输入数字“128”。

02 在单元格中输入公式:=ISODD(A2),然后按下“Enter”键确认即可。

alt

Excel 判断测试对象是否为数值:ISNUMBER函数

如果需要判断测试对象是否为数值,可通过ISNUMBER函数实现。ISNUMBER函数的语法为:=ISNUMBER(value),其中value参数为需要进行检验的数值。若测试对象为数值,将返回逻辑值TRUE,否则返回FALSE。

下面举例说明ISNUMBER函数的使用方法。

01 在“A2”单元格中输入需要测试的数据值,本例输入数字“128”。

02 在需要显示结果的单元格中输入公式:=ISNUMBER(A2),然后按下“Enter”键确认即可。

alt

Excel 检测一个值是否为文本:ISTEXT函数

如果需要检测一个值是否为文本,可通过ISTEXT函数实现。ISTEXT函数的语法为:=ISTEXT(value),其中value参数为指定用于检测是否为文本的数据。若测试对象为文本,将返回逻辑值TRUE,否则返回FALSE。

下面举例说明ISTEXT函数的使用方法。

01 在“A2”单元格中输入需要测试的数据值,本例输入数据“信息函数”。

02 在需要显示结果的单元格中输入公式:=ISTEXT(A2),然后按下“Enter”键确认即可。

alt

Excel 判断支出是否在预算内

如果需要判断一笔开支是否在预算内,可通过IF函数实现。假设输入一个数字,若小于100,则显示“预算内”,否则显示“超支”,具体操作如下。

01 在“B1”单元格中输入需要计算的数据,如输入“90”。

02 在单元格中输入公式:=IF(B1<=100,”预算内”,”超支”),然后按下“Enter”键确认,得到结果“预算内”。

alt

Excel 对数据执行真假值判断:IF函数

如果需要对数据执行真假值判断,并根据逻辑计算的真假值返回不同结果,可通过IF函数实现。

IF函数的语法为:IF(logical_test, value_if_true, value_if_false),其中各个函数参数的含义如下。

※ logical_test:表示计算结果为TRUE或FALSE的任意值或表达式。如“A10=100”是一个逻辑表达式,若单元格A10中的值等于100,则计算结果为TRUE,否则为FALSE。

※ value_if_true:是logical_test参数为TRUE时返回的值。例如,若此参数是文本字符串“预算内”,而且logical_test参数的计算结果为TRUE,则IF函数显示文本“预算内”;若logical_test为TRUE而value_if_true为空,则此参数返回0(零)。

※ value_if_false:是logical_test为FALSE时返回的值。例如,若此参数是文本字符串“超出预算”,而logical_test参数的计算结果为FALSE,则IF函数显示文本“超出预算”;若logical_test为FALSE而value_if_false被省略,即value_if_true后面没有逗号,则会返回逻辑值FALSE;若logical_test为FALSE且value_if_false为空,即value_if_true后面有逗号且紧跟着右括号,则会返回值0(零)。