大家好,欢迎来到IT知识分享网。
_Excel公式教程
转载
▼
标签: excel公式教程 and函数 or函数分类: Excel公式教程-函数篇
【语法1】AND(logical1,[logical2],…)
执行逻辑与运算:所有参数都是TRUE,则返回TRUE;只要有一个参数是FALSE,即返回FALSE。
【语法2】OR(logical1,[logical2],…)
执行逻辑或运算:所有参数都是FALSE,则返回FALSE;只要有一个参数是TRUE,即返回TRUE。
两个函数都可以包含若干个参数。受不同版本对函数个数的限制,2003版最多允许30个参数,2007版开始允许参数多达255个。
各个参数既可以是单值,也可以是数组。
对于单值参数,要求是一个逻辑值。根据数值类型自动转换的规律,非0的数字值、文本值”TRUE”可被视作逻辑值TRUE;数字值0、文本值”FALSE”可被视作逻辑值FALSE。因此:
=AND(TRUE,”FALSE”) 返回FALSE
=OR(FALSE,3) 返回TRUE
而对于数组参数,只把其中的非0数字值转换为TRUE,把数字值0转换为FALSE,而忽略其中的文本值”TRUE”和”FALSE”,也忽略空单元格(不会把空单元格转换为FALSE)。
假设单元格A1是文本值=”FALSE”,A2是数字值3,A3是空单元格,A4是文本值=”TRUE”,则
=AND(A1:A4) 返回TRUE
=OR(A3:A4) 将因为引用范围内没有可以转换为逻辑值的数据,所以返回错误值#VALUE!
=AND(A3) 也返回#VALUE!
这两个函数因为具有处理数组参数的能力,所以参数即使是对一个单元格的引用,该参数也作为数组来处理,而不是单值。
另外,只要其中任意一个参数返回了错误值,函数就返回错误值。例如:
=AND(TRUE,#DIV/0!,1) 返回错误值#DIV/0!
如果有多个参数都返回错误值,而且是不同的错误值,则返回第一次出现的错误值,例如:
=AND(TRUE,#NUM!,#DIV/0!) 返回错误值#NUM!
【用法】
一、进行基本的逻辑运算。参数通常是由比较运算、IS类函数等返回的逻辑值。
例如,以下公式判断单元格A1的值是不是大于等于80且小于90,是则返回“优良”,否则返回空文本:
=IF(AND(A1>=80,A1<90),”优良”,””)
以下公式判断单元格A1的值是不是小于5,或者大于8:
=IF(OR(A1<5,A1>8),”区间外”,”区间内”)
注意不要把AND(A1>=80,A1<90)写成80<=A1<90,也不要把OR(A1<5,A1>8)写成5>A1>8。为什么呢?请参阅:http://blog.sina.com.cn/s/blog_14e89401f0102wbhh.html
二、参数可以使用三维引用。对三维引用中的单值的处理方法与数组参数相同,即只把其中的非0数字值转换为TRUE,把数字值0转换为FALSE,而忽略其中的文本值”TRUE”和”FALSE”,也忽略空单元格。
假设两个相邻的工作表Sheet2、Sheet3的B3:C4区域都是数字值,下面的公式可检测区域内有没有零值:
=AND(Sheet2:Sheet3!B3:C4)
如果区域内没有零值,公式返回TRUE,如果有零值,公式返回FALSE。
而下面的公式则检测区域内有没有非零值:
=OR(Sheet2:Sheet3!B3:C4)
如果区域内有非零值,公式返回TRUE,如果全是零值,公式返回FALSE。
由于区域内的文本值和空单元格会被忽略,这个例子适用于区域内的单元格都是公式,且公式返回值都是数字值的情况。
三、根据数值类型自动转换的规律,逻辑运算可以写成算术运算。
(一)逻辑与运算可以写成把逻辑值相乘,例如:
AND(logical1,logical2,…) 可以写成logical1*logical2*…
逻辑值用于乘法运算,TRUE被转为数字1,FALSE被转为数字0来计算。因此,只要有一个逻辑值为FALSE,计算结果即为0,否则计算结果为1。
上面的公式可以写成:
=IF((A1>=80)*(A1<90),”优良”,””)
(二)逻辑或运算可以写成把逻辑值相加,例如:
OR(logical1,logical2,…) 可以写成logical1+logical2+…
逻辑值用于加法运算,TRUE被转为数字1,FALSE被转为数字0来计算。因此,只有全部逻辑值都是FALSE,计算结果才为0,否则计算结果为一个正整数。
如果想结果是1或0,可以写成SIGN(logical1+logical2+…)。
上面的公式可以写成:
=IF((A1<5)+(A1>8),”区间外”,”区间内”)
(三)逻辑值进行AND、OR逻辑运算,与进行乘法、加法算术运算的区别在于:当logical是区域引用或数组的时候,由于AND、OR函数具有处理数组参数的能力,所以AND、OR函数不会进行数组运算,计算结果只会是一个单值;而算术运算可以进行数组运算,所以计算结果可以是一个数组。
假设单元格A1是一个家电产品的名称、品牌、型号(比如输入“海尔电视机”)。
在单元格C1输入以下数组公式,可判断A1是不是“海尔”“美的”“松下”以外的品牌:
{=AND(ISERR(FIND({“海尔”,”美的”,”松下”},A1)))}
在单元格C1输入以下数组公式,判断A1是不是“海尔”“美的”“松下”其中的一个品牌:
{=OR(ISNUMBER(FIND({“海尔”,”美的”,”松下”},A1)))}
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/69317.html