资源预览内容
第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
亲,该文档总共4页全部预览完了,如果喜欢就下载吧!
资源描述
EXCEL 中的*和 and,+和 or 在逻辑运算中的应用认为*是 and(且) 、认为 +是 or:比如公式 1 可以这么解释 A 列= 小王且 B 列=收,对 C 列求和;公式 2 解释为 A 列是小王或者 A 列是小张,则对 C 列求和。而实际上这个似乎非常符合汉语习惯的让人觉得非常“正确”的理解却是不完全的。此时的*号和+号仍然是乘和加的作用。方法:工具公式审核一步步看公式的结果就知道了*和+ 号两边得到的是true,false组成的逻辑值数组,用于运算时 true*true=1,true*false=0,true 与任一数字作算术运算,得到原数字;false 与任一数字作算术运算,得到 0,得出结果如果用于 IF 判断,0=False、其他数值=True ;如果用于下一步计算(比如公式 1 后面的直接*C2:C10)则也是用 1、0 代入的(1*数值=数值本身,0*数值=0 )1、简单例子以及容易产生的“理解”逻辑判断公式中,常常见到条件相*或相+,也常见到 and和 or,比如:=if(and(A10,A10)*(A10,A18),B1,C1)对比 or 和+以上两种情况是完全可以互换的(等价的) 。由此,初学函数的朋友就容易产生这么一种理解:“*就是 and(而且的意思)+就是 or(或者的意思) ”在某种意义上来说快速地解读公式含义的话,这个“理解” 听起来最容易接受了。但不要由此就把这种逻辑判断中的理解扩散成“完全等价 ”!请看下一点:在以下两个条件求和中:(数组公式,按 Ctrl+shift+enter结束) (假设 A1=4,A2=21;B1=5 ,B2=11 )=sum(if(and(A1:A20,A1:A20)*(A1:A20)*(A1:A20)+(A1:A20,A1:A28),B1:B2)=sum(if(and(True;True,True;False),B1:B2)=sum(if(False,B1:B2)=0and(True;True,True;False)有出现 False 返回False;or 公式类似。由*、+得到的是:=sum(if(1;0,B1:B2)=sum(5;False)=5可以用 F9 键在编辑栏看出。而=sum(if(2;1,B1:B2)=sum(5;11)=16注:在逻辑判断 if 的条件中,0=False;非 0 的数值都=True从以上的对比可以看出:运算符*和+在逻辑判断中与 and和 or 是不同的,前者得到的是数组,后者只能得到单值.在数组运算的情况下由于不能匹配故不能互换。*和+的用法,实际上是针对相同尺寸的逻辑数组的算术运算,逻辑数组 A*(+)逻辑数组 B=逻辑数组 C。而 and(逻辑数组,逻辑数组)和 or(逻辑数组,逻辑数组)中 and 和 or 的参数可以是数组,但却不是数组运算,没有数组的对应关系,其结果返回单值。所以两者是不能等价的。从上面的知识点拓展一下,平时看到很多形式如 if(条件 1*条件 2*,统计区域) 的简化 if 法(满足所有条件,返回统计区域,否则返回 False(简化没写) 。即数值和 False组成的数组)和连乘法(利用数组相乘返回数组即数值和0 的数组)原理并不相同.这一点狗尾草版主也强调过.在 sum 中,因为简化没写的 0(简化 if 法返回)对于加总求和并没有影响,所以大多可以通用。在 Average、Max 、 Min 等函数中则不能通用:False 在计算中大多情况=0 ,但并非都是这样。比如 Average会将连乘法中 0 算入平均的个数,而不会将简化 if 法中的 False 算入个数。而由满足条件的值都是负数的情况下,max 连乘法将得到0,max 简化 if 法得到的才是正确答案。连乘法对应的不是简化 if 法,而是 if(条件 1*条件 2*,统计区域,0) 。
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号