EXCEL中的and和or在逻辑运算中的应用.docVIP

EXCEL中的and和or在逻辑运算中的应用.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
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,A18),B1,C1)……VS……=if((A10)*(A18),B1,C1)——对比and和* =if(or(A10,A18),B1,C1)……VS……=if((A10)+(A18),B1,C1)——对比or和+ 以上两种情况是完全可以互换的(等价的)。由此,初学函数的朋友就容易产生这么一种理解:“*就是and(而且的意思)+就是or(或者的意思)” 在某种意义上来说快速地解读公式含义的话,这个“理解”听起来最容易接受了。但不要由此就把这种逻辑判断中的理解扩散成“完全等价”!请看下一点: 在以下两个条件求和中:(数组公式,按Ctrl+shift+enter结束)(假设A1=4,A2=21;B1=5,B2=11) =sum(if(and(A1:A20,A1:A28),B1:B2))……VS……=sum(if((A1:A20)*(A1:A28),B1:B2)) 前者只有当A1、A2都介于0和8之间时才返回B1:B2的和,否则得到0; 后者则分开了,比如A1介于0和8之间,A2不介于0和8之间,那么求得的结果是B1的和,而不是0。 这只是一些显性的数组公式,还有不少用数组运算的公式(非数组公式,不按三键) 2、and、or与*、+的原理比较: AND(logical1,logical2, ...)——详见and函数帮助:当所有的logical们都为True时返回True——这是1个单值; OR(logical1,logical2, ...)——详见and函数帮助:当所有的logical们只要有一个为True时返回True——这是1个单值; (A1:A20)*(A1:A28)——返回的是{True;False}*{True;True}类型的数组相乘的结果{1;0}——这是一个数组; (A1:A20)+(A1:A28)——返回的是{True;False}+{True;True}类型的数组相加的结果{2;1}——这是一个数组; 接下来: 由and、or得到的是: =sum(if(and(A1:A20,A1:A28),B1:B2))=sum(if(and({True;True},{True;False}),B1:B2))=sum(if(False,B1:B2))=0 and({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)

185****7617 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档