分享

逻辑值TRUE和FALSE与1和0的关系

 刘卓学EXCEL 2021-04-02

在之前的文章中,我们已经学完了常用逻辑函数,包括条件判断的if函数,处理错误值的iferror函数,还有and和or函数。也知道了逻辑值true代表条件成立,false代表条件不成立。今天来说说true和false与1和0的关系。

-01-

数据类型

在excel中有4种数据类型:数字,文本,逻辑值和错误值。按F5或者ctrl+g调出定位对话框,点定位条件,可以出现下图的对话框。

数字就是我们常用的数字,如1,2,1.2等;文本就是一些字符串,比如"excel","函数也不难","12"等,在公式中文本用要英文双引号包裹,很多初学者都不知道这个;逻辑值就是true和false;错误值就是我们之前说的那7种,如#DIV/0!,#VALUE!等。

你可能觉得"12"不是数字吗?怎么会是文本呢?不相信的话,你可以在任一空白单元格输入公式=12="12",看看它的结果。如下图所示,结果返回false,说明他俩不相等。因为一个是数字类型,一个是文本类型,你让它们如何相等?

那你说我就想让它们相等,有没有办法呢?答案是有的,这4种不同的数据类型通过一定的运算是可以相互转化的,但你不要让它们直接相等,那有点为难它们。如果上面的公式改为=12="12"+0,结果就返回true。


文本型的"12"通过数学运算会转为数字型的12,与0相加还是12,12等于12,所以结果返回true。

-02-

逻辑值与1和0的关系

1.逻辑值转成数字

既然文本型的数字可以通过数学运算转为真正的数字,那如果让逻辑值进行数学运算会发生什么呢?在任一空白单元格输入公式=1+TRUE,结果返回2,如下图所示,那么可以推测TRUE等于1。

但不要忘了前面说的数据类型,TRUE是逻辑值,1是数字,他们是不同的数据类型,让它们直接相等会成立吗?如下图所示,结果返回false。

那上面的1+TRUE=2怎么理解呢?实际上,逻辑值true通过数学运算会转为1,但你不能直接让它等于1。可以这么说,true相当于1。

那false呢?从下图可以看出false相当于0。

2.逻辑值转化成数字的常用方法

从上面的测试,我们可以知道true相当于1,false相当于0。那它们转为数字的常用方法有哪些呢?我在下图列出一些方法,false也是一样的。

将逻辑值转为数字非常有用,在我们的公式中经常使用,看下面的应用。

-03-

具体应用

1.求出语文和数学都是"优"的人数

左表是每人的评分等级表,其中语文和数学的等级是用公式=MID("优良中差",RANDBETWEEN(1,4),1)随机生成的,按F9会变化的;而且设置了条件格式,对满足条件的记录标记出来。

显然这是个多条件与的关系,可以尝试用and函数。通常的做法是像下图一样添加辅助列,在D11单元格中输入公式=--AND(B11="优",C11="优"),向下填充,再求和。

由于AND(B11="优",C11="优")最后返回true或false,你不好统计true的个数,所以在and前面加个负负,将其转成数字1和0就好统计了。这就是逻辑值转成数字的好处,我习惯用负负来转。

有的同学可能会想到,我能不能用数组来做呢,就像if函数那样,把一个单元格变为一个区域,可以试一下。在E13单元格中输入公式=SUM(--AND(B11:B17="优",C11:C17="优")),按ctrl+shift+enter,发现结果是0。

为什么会这样呢?虽然and函数的2个参数都是数组,但其结果只返回一个值,而不是一个数组,你可以按F9查看。这就是and函数的一个特点,也可以说是一个劣势吧,那有没有解决方案呢,答案是有的,后面会说的。

既然and不能返回一个数组,只能想其他办法了。由于这里是多条件与的关系,并且是用"="这个比较运算符,那么可以用连接符&将2个条件连接起来变成1个条件。在E11单元格中输入公式=SUM(--(B11:B17&C11:C17="优优")),按ctrl+shift+enter。

分步解释一下这个公式,如下图所示,F列是B11:B17&C11:C17的结果,也就是语文这1列数据和数学这1列数据连接起来的结果;G列是B11:B17&C11:C17="优优"的结果,也就是连接后的结果是否等于"优优"。由于比较的结果是逻辑值,所以前面加--转为数字,最后用sum求和。

思考题:

下表中,语文是优且数学是良,或者,语文是良且数学是优的有几人?最好不要用辅助列,一条公式完成最好,期待你的练习。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多