Excel怎么用if函数计算多条件问题?

假如a大于4000且b大于80属于A,a大于两千小于四千,且b大于五十小于八十属于B,a大于一千小于两千且b大于20小于50属于C,a小于一千且b小于…
关注者
34
被浏览
290,995

26 个回答

本文是Excel入门系列第十期,阅读大概需要3-5min.

Excel默认公式中共有九个逻辑函数,分别是AND、FALSE、IF、IFERROR、IFNA、NOT、OR、TRUE、XOR,其中高频使用且需要掌握的仅有四个,分别是AND、OR、IF、IFERROR。

其中IF函数是Excel中最最最基础的函数之一,必须精通,AND与OR函数的价值更多的是与IF函数搭配使用,IFERROR函数主要用来处理错误值,也非常重要。

下面我们分别了解Excel中逻辑函数的妙用~

AND函数 | 全真则真,一假则假

功能:检查所有参数是否为真,如果全部为真,返回True,如果有一个不为真,则返回False;

语法:AND(判断条件,判断条件…),最多可输入255个判断条件;

示例:


示例中,AND函数一共输入了三个参数,这三个参数都是对的,AND函数返回True,否则的话AND函数返回False;

总结一句话:AND函数全真则真,一假则假

OR函数 | 一真则真,全假则假

功能:判断所有参数,如果有一个对的,函数返回True,如果全为错的,函数返回False;

语法:OR(判断条件,判断条件…)最多可输入225个判断条件;

示例:


示例中,OR函数一共输入三个参数,有一个是对的,OR函数返回True,全为错的,函数返回Flase;

总结一句话:OR函数一真则真,全假则假。

IF函数

功能:判断是否满足一个条件,如果满足返回一个值,如果不满足,返回另外一个值;

语法:IF(判断条件,条件成立返回值,条件不成立返回值)


示例:

示例中判断一位同学的成绩是否及格,判断条件是:成绩是否大于等于60,如果大于60分,则返回”及格”,否则返回”不及格”。

需要注意的是,Excel公式中的符号都得是英文状态下的输入法进行输入,如括号、逗号、双引号等等,公式中出现的汉字得打上英文状态下的双引号。

另外可以发现,IF函数第一个参数只是判断条件,最终单元格返回的内容在第二个参数或第三个参数其中的一个(第一个参数为TRUE返回第二个参数,第一个参数为FALSE返回第三个参数)。

IF与AND&OR的组合式运用

IF+AND:

IF函数的第一个参数是个判断条件,如果想要输入多参数,就需要结合AND与OR函数了,下例中,如果一位同学的语数外三门成绩全部大于80分,则判定为三好学生;

这里用AND(B2>80,C2>80,D2>80)来作为IF函数的第一个参数,上面介绍过,AND函数全真则真,一假则假,只有当三门成绩全部大于80分的时候,AND函数返回TRUE,判断条件为TRUE(为真),IF函数返回第二个参数“三好学生”,如果有一个成绩不大于80分,AND函数返回FALSE,IF函数返回第三个参数“否”。

注:第二个参数与第三个参数双引号内的文字可以随意输入,能表明意思即可。

IF+OR:

下例中,如果一位同学的语数外任一科成绩大于90分,就算作单科优秀学生,这里用OR(B2>90,C2>90,D2>90)来作为IF函数的第一个参数,OR函数全假则假,一真则真,表明如果三科有一个大于90分,OR函数返回

TRUE,IF函数返回第二个参数;三科都不大于90,OR函数返回FALSE,IF函数返回第三个参数。

IF函数的经典嵌套

说到IF函数,就不可避免地涉及到IF函数的嵌套问题。

嵌套的本质就是在一个IF函数中,再输入一个IF函数,层层嵌套;

一层嵌套中,红色部分一个完整的IF函数组成了第一个IF函数的第三个参数;

二层嵌套中,红色部分+蓝色部分组成第一个IF函数的第三个参数,红色部分组成了第二个IF函数的参数三。


嵌套函数的执行顺序

这里我们以二层嵌套作为基本,讲解嵌套函数的执行顺序!

只需记住一点:从前往后,依次判断条件,条件满足则返回该条件后面的参数二,直至所有条件判断完,还不满足,返回最后一个IF函数的参数三。

经典案例:

下图中根据右边的等级规则,利用IF嵌套函数获取每位同学的等级。

第一步,先根据前两个条件,编写两个IF函数:

=IF(B2>=90,"优秀",1);1式

=IF(B2>=80,"良好",1);2式

接着将2式带入1式,1式中的数字1替换成2式:

=IF(B2>=90,"优秀",IF(B2>=80,"良好",1));3式

第二步:因为还剩两个条件,一个IF函数就可以搞定:

=IF(B2>=60,"一般","差");4式

第三步:将4式带入3式中,整个4式替换3式中的数字1,完成IF函数的嵌套:

=IF(B2>=90,"优秀",IF(B2>=80,"良好",IF(B2>=60,"一般","差")))

这样一步步输入,有条不紊,不会出错,不然多次嵌套会眼花缭乱。

小技巧:

嵌套公式的过程中,可以利用Alt+Enter对公式进行换行,一目了然。


IFERROR函数

Excel函数中存在多种错误类型,如#DIV/0!、#VALUE!、#N/A、#NUM!、#REF!、#NAME?等等,如果不想让Excel显示这些错误类型,iferror函数应运而生。

功能:如果一个表达式是一个错误,则返回指定值,否则返回表达式自身的值;

语法:IFERROR(表达式,指定值)

上图中:

1式中的表达式为数字与文字相加,必然出现#VALUE!错误,利用IFERROR函数返回其它内容;

3式中的表达式1/0,0不可以做被除数,必然出现#DIV/0!错误,利用IFERROR函数返回其它内容;

2式与4式表达式皆可正常进行运算,IFERROR函数反正表达式本身值。

历史文章分享:

小结

以上就是Excel中常用的逻辑判断函数,希望对你有所帮助~

IFS函数,该函数为Excel2019新增。


更多函数介绍详见:

hiqingle:Excel数据分析——函数与公式(上)

hiqingle:Excel数据分析——函数与公式(中)

查找与引用

查找与引用类型函数是相对比较复杂的一类函数,我们先将比较重要的这类函数的基本用法示例说明,然后再针对比较常用的函数组合用法详细展开。



  • CHOOSE:从值的列表中选择值
  • IFS:检查是否满足一个或多个条件,且是否返回与第一个 TRUE 条件对应的值。
  • SWITCH:根据值列表计算表达式,并返回与第一个匹配值对应的结果。 如果不匹配,则可能返回可选默认值。
  • ROW:返回引用的行号
  • ROWS:返回引用中的行数
  • COLUMN:返回引用的列号
  • COLUMNS:返回引用中包含的列数
  • ADDRESS:以文本形式将引用值返回到工作表的单个单元格
  • INDIRECT:返回由文本值指定的引用
  • INDEX:使用索引从引用或数组中选择值
  • OFFSET:从给定引用中返回引用偏移量
  • MATCH:在引用或数组中查找值
  • XMATCH:返回项目在数组或单元格区域中的相对位置。match_mode缺省为精确匹配,match_mode为1,为返回精确匹配或下一个最大项
  • VLOOKUP:在数组第一列中查找,然后在行之间移动以返回单元格的值
  • XLOOKUP(VLOOKUP的升级版):搜索区域或数组,并返回与之找到的第一个匹配项对应的项。 如果不存在匹配项,则 XLOOKUP 可返回最接近(近似值)的匹配项。
  • HYPERLINK:创建一个快捷方式,用于打开硬盘、服务器或Internet上的文档


XLOOKUP,比VLOOKUP更强

世人只知VLOOKUP,而不是XLOOKUP,殊不知XLOOKUP比VLOOKUP其实更好用,弥补了VLOOKUP的很多缺陷。刚刚结果的VLOOKUP的复杂用法,其中不乏一些巧思,但用XLOOKUP来解决,就变得异常简单了。下边的几个例子中,每个例子都用了多种解法,整体对比下来,XLOOKUP函数比VLOOKUP使用上更简约、理解上更容易。

  • 单列查找,结果多列(VLOOKUP+MATCH、VLOOKUP+COLUMN、XLOOKUP数组)
  • 在左边的列中查找值(VLOOKUP+IF数组、INDEX+MATCH、XLOOKUP)
  • 双列查找(VLOOKUP+IF数组、INDEX+MATCH数组、XLOOKUP)
  • 在多个表格中查找(VLOOKUP+IF、XLOOKUP+IF)



较为复杂的引用函数

  • 确定一个值在区域内的单元格地址(ADDRESS)
  • 多行多列转换为一列(OFFSET)
  • 引用区域文本转化为参数化的引用(INDIRECT)
  • ROW与ROWS的区别,COLUMN与COLUMNS同理



引用函数


计数和求和

前面提到的函数是放任何领域都比较通用的函数,而从这里开始之后的函数,可能在数据分析领域更为常见一些。我们先介绍最最最常用的计数和求和函数。





  • COUNT:计算参数列表中数字的个数
  • COUNTIF:计算区域内符合给定条件的单元格的数量
  • COUNTIFS:计算区域内符合多个条件的单元格的数量
  • SUBTOTAL:返回列表或数据库中的分类汇总
  • SUM:求参数的和
  • SUMIF:按给定条件对指定单元格求和
  • SUMIFS:在区域中添加满足多个条件的单元格
  • SUMPRODUCT:返回对应的数组元素的乘积和
  • AVERAGE:返回其参数的平均值
  • AVERAGEIF:返回区域中满足给定条件的所有单元格的平均值(算术平均值)
  • AVERAGEIFS:返回满足多个条件的所有单元格的平均值(算术平均值)


计数和求和函数主要分三组,计数、求和和平均(即求和除以计数),每组中均包含XX、XXIF和XXIFS的函数,另外求和函数还多了一个SUBTOTAL和SUMPRODUCT函数。

由于三组函数用法基本相同,本节以求和函数为示例来介绍。


SUBTOTAL与SUM的区别

快捷键ALT+=可以快速填充求和公式,与手写SUM公式的好处在于不用挨个选择求和区域,即可以自动选择(连续)求和区域。有两种用法。

第一种,Ctrl多选求和公式所在单元格后ALT+=,这时公式是SUM(X:X)



第二种,筛选可见单元格后ALT+=,这时对应的公式是=SUBTOTAL(9,X:X),SUBTOTAL函数有个特性是可以仅对可见单元格求和(需要把=SUBTOTAL(9,X:X)改成=SUBTOTAL(109,X:X)),这也是SUM函数做不到的。




条件求和

说到求和函数,必须重点讲一下SUMIF,SUMIF仅针对满足条件的数据求和,也就是筛选后求和。这个筛选可以是数据本身,也可以是数据所在行的其他字段,筛选方式可以是数值比较,也可以是匹配通配符。

下面这张图可以讲清楚常用的条件求和函数。一题多解,主要是为了拓展函数思维。如有疑问,可在评论中提出来,我看到会解答的。

  • 单条件求和(SUMIF)
  • 多条件求和(SUMIFS、SUMPRODUCT、SUM数组公式、SUM+SUMIF)



条件求和函数

加权求和、加权平均



排序



  • MAX:返回参数列表中的最大值
  • MAXIFS:返回一组给定条件或标准指定的单元格之间的最大值
  • MIN:返回参数列表中的最小值
  • MINIFS:返回一组给定条件或标准指定的单元格之间的最小值。
  • LARGE:返回数据集中第K个最大值
  • SMALL:返回数据集中第K个最小值
  • MEDIAN:返回给定数值集合的中值
  • TRIMMEAN:返回数据集的内部平均值
  • QUARTILE.EXC:基于从0到1之间(不含0与1)的百分点值,返回一组数据的四分位点
  • QUARTILE.INC:基于从0到1之间(含0与1)的百分点值,返回一组数据的四分位点
  • RANK.AVG:返回某个数字在一列数字中相对于其他数字的大小排位,如果多个数值排名相同则返回平均排名
  • RANK.EQ:返回某个数字在一列数字中相对于其他数字的大小排位,如果多个数值排名相同则返回最佳排名
  • PERCENTILE.EXC:返回区域中数值的第k个百分点的值,此处的k的范围为0到1(不含0和1)
  • PERCENTILE.INC:返回区域中数值的第k个百分点的值,此处的k的范围为0到1(含0和1)
  • PERCENTRANK.EXC:返回特定数值在一组数中的百分比排名(介于0与1之间,不含0与1)
  • PERCENTRANK.INC:返回特定数值在一组数中的百分比排名(介于0与1之间,含0与1)


排序函数的常见应用

  • 最大值、最小值(MAX、MIN)
  • 次大值、次小值(LARGE、SMALL)
  • 指定数字的排名(RANK、COUNTIF)
  • 不计重复的次大值(LARGE+COUNTIF+MAX)
  • 大于平均值的最小值(LARGE/SMALL+COUNTIF+AVERAGE、MIN+IF+AVERAGE)
  • 前/后N名平均分(AVERAGE+LARGE/SMALL+ROW/COLUMN)
  • 去掉前后N名平均分(TRIMMEAN)



统计

较为简单,这里只简单示例一下。



  • STDEVA:估算样本(包括数字、文本和逻辑值)标准偏差
  • STDEVPA:计算样本总体(包括数字、文本和逻辑值)标准偏差
  • VARA:估算样本(包括数字、文本和逻辑值)方差
  • VARPA:计算样本总体(包括数字、文本和逻辑值)方差
  • RAND:返回 0 和 1 之间的一个随机数
  • RANDBETWEEN:返回位于两个指定数之间的一个随机数
  • CORREL:返回两个数据集之间的相关系数


统计类型函数,还有各类分布的对应函数,如正态分布的NORM.DIST函数和γ分布的GAMMA.DIST函数。我实际工作中几乎没用到过,感兴趣的可以自己再深入学习了解。