楼主 gouweicao78 |
Q:经常看到公式中用*号或者+号将两个条件判断相连,请问它们是“且”、“或”的意思吗? A:这个理解比较含糊,很多人容易又把它们与AND、OR函数混淆起来,在数组运算中就错了。实质上,*号和+号都只是运算符号而已。以*号为例,比如: 例1、普通运算判断中:=IF((A1>70)*(A1<80),"良好","")与=IF(AND(A1>70,A1<80),"良好","")的结果是相同的,但其原理却不同,假设A1=75,则: 1)、(A1>70)*(A1<80)→利用逻辑值与数值转换准则,TRUE*TRUE→得到1,IF(1,相当于IF(TRUE,所以第一个公式返回“良好”。 2)、AND(A1>70,A1<80)→AND(TRUE,TRUE)→得到TRUE。 例2、数组运算中:{=SUM((A1:A3>70)*(A1:A3<80))},假设A1:A3分别为65、73、75,则(A1:A3>70)*(A1:A3<80)执行的是如下数组运算: ({65;73;75}>70)*({65;73;75}<80) → {FALSE;TRUE;TRUE}*{TRUE;TRUE;TRUE} → {0;1;1},最后SUM({0;1;1})得到2。 但如果用AND函数来代替呢?比如=SUM(AND(A1:A3>70,A1:A3<80)) → 其中AND函数部分为:AND({FALSE;TRUE;TRUE},{TRUE;TRUE;TRUE}),返回FALSE,SUM(FALSE)返回0。 上述运算请参考:逻辑值和数值及文本之间有什么样的关系 http://www.exceltip.net/thread-1152-1-1.html |
2楼 yanghan52717 |
太好了 谢谢 |
3楼 cary |
还是不太明白, 不过先谢谢了 |
4楼 曾杰2号 |
谢谢楼主分享! |
5楼 悟空师弟 |
Q:逻辑比较运算时AND函数和乘号“*”在公式中的用法完全一致吗?像这样AND(A1 A:不一定,AND是逻辑函数,参数中的0值相当于FALSE,非0值相当于TRUE,结果中FALSE相当于0值,TRUE相当于1。所以,不管参数中的数值是多少,AND函数的结果只有FALSE和TRUE(即0和1)两种。 乘号“*”则不同,如果乘号两边的数值不是0和1这两种,返回的结果也就不止0和1这两个数值。 由上所述可以得出, 1、如果AND函数和乘号“*”返回的结果继续放在另一个逻辑函数中使用,用法完全一致; 2、如果乘号“*”两边的数值只有0和1这两种,用法完全一致; 3、否则,有可能产生不同效果。 详见附件中的错误举例: ADN函数和乘号在公式中的联系与区别.rar |
6楼 lrlxxqxa |
我的理解主要区别是在数组运算的时候,and和or只能返回单值,而*和+返回的是数组 |
7楼 ytjwl77 |
受益匪浅 简单的理解and和or可以用*和+代替 但这个代替是不可逆的 就好像悟空能变成我 而我却变不成悟空 |
8楼 zgwei050 |
有时还真要糊涂的! |
9楼 健康快乐123 |
目前只能认识到简单的运用,区别不清楚,今天学习各位高手的说法,很受益啊 |
10楼 萧紫 |
谢谢,学习 |
11楼 健康快乐123 |
学习了,很有用 |
12楼 木杉 |
感谢楼主 新人学习 |
13楼 kevin_yjl |
这部分知识挺难懂的 |