分享

基础知识5:Excel中逻辑值的妙用

 Excel学习园地 2020-09-16
Excel基础学习园地
公众号“Excel基础学习园地”是一个免费发布Excel基础知识、函数应用、操作技巧、学习方法等资讯的公众号,请点击上方“Excel基础学习园地”添加关注,方便我们每天向您推送精彩资讯。

在使用Excel公式解决实际问题的时候,经常会遇到各种判断、比较,这些判断或者比较的结果只有两种,对或错,对在Excel中用TRUE表示,错用FALSE表示,TRUE和FALSE就是Excel中的逻辑值。逻辑值只有这两个!

逻辑值从哪来

例如:判断单元格的数据是否为文本,可以使用函数ISTEXT(A1),例子中得到的结果就是TRUE。

再比如,判断单元格的数字是否为偶数,可以使用函数=ISEVEN(A2),中得到结果是FALSE。

在实际应用中,所遇到的判断还有很多,Excel中可以用来做判断的函数除了刚才介绍的两个,还有很多,这类函数有一个共同的特点,都是IS开头的,所以也被称作IS 函数,我们可以在单元格中输入=IS,就能看到这些函数,鼠标选中对应的函数,就会有个简短的说明:

这里给大家一个建议:在你输入某个函数的过程中,不妨将鼠标停留在提示的其他函数上,大致了解一下对应函数的功能,不管是不是用的到,多认识几个函数,对今后的好处都是不可估量的。

除了通过这些函数做出判断得到逻辑值,还有一种情况就是做比较。

Excel里有六种比较运算符:=(等号)、>(大于号) 、<(小于号) 、>=(大于等于号) 、<=(小于等于号) 、<>(不等号) 。

提示:Excel中大于等于是>=,不是≥,小于等于是<=,不是≤,不等于是<>,不是≠。

例如:比较单元格的数字是否大于60;

比较单元格的内容是否等于某个具体内容;

实际上,比较运算也是一种判断。

以上我们介绍了什么是逻辑值,以及逻辑值从何而来,接下来要了解逻辑值和数字的对应关系。

逻辑值与数字

我们使用Excel更多的是进行数据处理,因此处理对象为数字的时候就会有很大的优势,对数据进行各种统计是Excel最常用的功能之一,例如:求和、计数、平均值、最大值、最小值,还有根据指定条件对数据进行统计,这能给我们的工作带来更高的效率。

以上只是为了说明Excel在处理数字型的数据是有优势的,那么逻辑值和数字之间有什么关联呢,了解这一点,才能更好的让逻辑值为我们服务。

逻辑值与数字有本质的区别,它们之间没有绝对等同的关系,但逻辑值与数字之间允许互相转换,在说明逻辑值和数字的转换之前,我们先来学习一个函数:N函数

我们通过N函数对一类数据转换的结果来看看这个函数具体是什么作用:


可以看到,通过N函数,可以把所有的数据都转换为数字,原来是数字的,转换后不发生变化,原来是文本的,转为0,逻辑值中,TRUE被转为1FALSE被转为0

由此我们得知,在单元格公式中:N(True)=1、N(False)=0。也即:TRUE对应1FALSE对应0

在实际应用中,我们并不是使用N函数将逻辑值转化为数字,而是直接使用逻辑值参与计算,例如:

这是使用了乘法运算,True+1=2、True+False=1、3*False=0;

也就是说:逻辑值可以通过函数转化为数字,也可以通过运算(主要是加减乘除)转化为数字。

通过以上介绍,可以了解到逻辑值到数字的对应关系是一对一的,也即true对应1false对应0

但是反过来,数字到逻辑值的对应关系却不是一对一的,对应关系是这样的:0对应false,只要不是0的数字,都对应true,关于这一点,我们会在后面讲解if函数的时候再进行验证。

至此,我们认识了逻辑值:TRUEFALSE;也了解逻辑值从何而来:通过is类函数进行判断或者通过比较运算得到逻辑值;还有逻辑值对应数字的关系:TRUE对应1FALSE对应0。下面就来看看逻辑值在实际应用中都有哪些妙用。

逻辑值的妙用

例一:根据部门编序号


先来分析这个问题的特点:相同的部门都是在一起的,当部门发生变化序号对应增加1

如果这个问题给一个函数高手来做,很可能会写一个这样的公式:=SUMPRODUCT(1/COUNTIF(B$2:B2,B$2:B2)),实际上,这个问题可以利用逻辑值的特性来解决:=(B1<>B2)+N(A1)。先验证一下公式的正确性:


再来分析一下思路:


B列进行上下位置的比较,可以发现,结果为TRUE的位置就是需要序号增加1的位置,结果为FALSE的位置,序号不需要变,直接等于上一个单元格的序号即可。


也就是这样的效果,需要解释两点:

1、这里用到了一种公式设计时常用的思路,就是利用上一个单元格的数据进行叠加计算,如果A1为空,在进行加法运算的时候被看作是0,就有了这样的结果。

2、比较运算的优先级低于加减乘除运算,所以要加括号。关于运算顺序,大家可以根据这张表去理解。


在本例来说,A1不为空,所以使用N函数进行处理,就有了=(B1<>B2)+N(A1)这个公式的诞生。

公式看上去很简单,但是要想到就真的不简单了。

再来看一个阶梯价计算的问题。

例二:某地天然气实行阶梯收费方式,300方以内(含300方)每方1.7元,300-500方以内(含500方),每方为2元,500方以上,每方2.5元。


这个问题可以写出很多个公式来计算,今天我们只看使用逻辑值的计算方法:=E2*1.7+(E2>300)*(E2-300)*0.3+(E2>500)*(E2-500)*0.5

对于这类问题,用逻辑值的做法非常简单,有规律可循,而且不需要使用函数,首先换个角度来看看阶梯价格的计算方式,我们用这个表格来进行说明:


这个图更直观的体现出了阶梯的含义。

这个问题是三级定价,所以公式实际上也是三部分组成:E2*1.7、(E2>300)*(E2-300)*0.3、(E2>500)*(E2-500)*0.5;

不管实际用量是多少方,1.7的部分肯定都有,所以E2*1.7必须有,这可以理解为1级收费;

再往上的话,超过300的部分,0.3肯定都是有的,这里就有一个比较了,E2>300,如果实际用量小于等于300,这个比较的结果是FALSE,这部分计算结果为0;反之,如果是大于300的话,(E2-300)*0.3正好就是超过部分加收的金额,与第一级收费相加构成了二级收费的结果;

第三部分同样,判断实际用量是否超过500,如果不超过,这部分整个为0,超过的话,按0.5进行加收(注意这个0.5是与前一级的差额而不是与第一级的差额);

明白这一点以后,不过多少级定价,只要找到合适的比较值,以及加收的单价,就能计算出最终的阶梯价格。

这种方法绕过了if函数的多层判断,在级数较少的时候非常方便,可以使用这个思路去试试计算个人所得税(7级),可能公式会长一点,但是容易理解。

例二相对于例一来说,更容易上手,例一过于取巧了。下面再来看几个难度适中的例子

例三:本地生源在初试成绩的基础上增加10分,异地生源的最终成绩就是初试成绩。


这类问题一般都用if解决了:=IF(C3="本地",B3+10,B3)


其实这种问题用逻辑值完全可以解决,下面就通过这个例子,让我们来一步步了解逻辑值的魅力吧。

在这个问题中,只有一个判断,就是C3="本地"


通过这个判断,可以把是不是本地的区分开,接下来的一步很重要,怎么利用这个逻辑值呢?

让我们再来回顾一下这个问题的规则和逻辑值与数字的对应关系:本地加10分,异地加0分;true对应1false对应01*10=10,0*10=0

好像领悟到了什么,马上来试试:

到了这一步,那么结果改怎么完成,答案已经呼之欲出了。

让我们来完成最后一步:


最后的公式为=B3+(C3="本地")*10

这个问题我们用了三个辅助列来说明过程,将解决问题的过程使用辅助列来一步一步分解,最后再合成一个公式,对于新手学习函数嵌套来说非常有用。

与例三类似的,我们再看一个例子:


这是一张工资表,需要计算每个人的补贴金额,补贴的发放规则为:高工补贴为200,工程师补贴为100,其他岗位补贴0。

对于这个问题,用逻辑值来计算补贴的公式为:=(B3="高工")*200+(B3="工程师")*100

小测试:


通过以上介绍,逻辑值可以不需要函数,直接拿来计算就能解决很多问题,但是当逻辑值遇上数组,再一起配合函数使用的话,功能就会显得无比强大,随便拿出一些很经典的公式组合,都会看到逻辑值的影子(当然还有数组)。

上次我们学习了数列构造方法,今天学习了逻辑值,再加上下次学习的数组基础知识,这三部分内容就是今后学习公式函数的三根支柱。

本文节选自为【老菜鸟的班】函数课程讲义,想了解全部内容欢迎加入我们一起学习!

——Excel基础学习园地

添加关注,每天收获实用知识

看完有收获,别忘了点赞和转发哦~

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多