Excel的IF函数详解

article/2025/9/18 9:59:52

Excel的IF函数详解

Excel非常强大,数据处理和分析能力给我们的工作带来了非常大的帮助,今天我们就来了解Excel的函数IF,让我们逐步成为Excel大神。
在这里插入图片描述

IF函数的语法是:IF(logical_test,value_if_true,value_if_false),其中

logical_test:表示一个能返回True或False的条件,可以是数值或表达式

value_if_true:表示当logical_test为True时的返回值,如果忽略,则返回True

value_if_false:表示当logical_test为False时的返回值,如果忽略,则返回False

什么意思呢?就是说你可以通过这个函数判断是否满足某个条件(logical_test),如果满足返回一个值(value_if_true),如果不满足,返回另外一个值(value_if_false)。

1、基础用法

我们用一个例子来描述:

我们模拟了一些学生语文十二次模考的成绩及平均分数据
在这里插入图片描述

下来我们演示如何通过IF函数对每一名学生平均分进行评价。

小于72分的为不合格,大于等于72分的为合格。

首先我们选中P5,输入公式IF(O5<72,“不合格”,“合格”)。
在这里插入图片描述

表示我们用O5来判断是否小于72。

如果小于(条件结果为True)则返回“不合格”。

如果不小于(条件结果为False),则返回“合格”。

P6:P12以此类推。
在这里插入图片描述

2、多层嵌套

还用刚才的数据,只是我们的需求进一步细化。

变成“小于72分的为不合格, 72-95分的为合格,96-107分的为良好,大于107分的为优秀”。

这就要用到IF函数的嵌套,就是IF函数中的value_if_true或value_if_false是个另外一个IF函数,IF函数里包含了另外的IF函数。

这里要记住,不同版本的Excel,IF函数允许嵌套的层数不同。个人认为尽量不要超过7层。
在这里插入图片描述

如图所示我们只要将P5的公式修改成

IF(O5<72,“不合格”,IF(O5<96,“合格”,IF(O5<108,“良好”,“优秀”)))。

P6:P12以此类推。

就是第一个IF函数先判断O5是否小于72,如果满足,则返回不合格,如果不满足,就返回第二个IF函数的返回值。

第二个IF函数,判断O5是否小于96,如果满足,则返回合格,如果不满足,就返回第三个IF函数的返回值。

第三个IF函数,判断O5是否小于108,如果满足,则返回良好,如果不满足,返回优秀。

此时我们发现,对于区间判断,IF函数的条件必须按照升序或降序来判断。

能不能在条件中使用AND或者Or呢?当然可以。

3、多条件用法

下来我们继续改变P5的公式为

IF(O5<72,“不合格”,IF(AND(O5>95,O5<108),“良好”,IF(AND(O5>=72,O5<=95),“合格”,“优秀”)))。

此时,这三个IF就不需要按照升序或降序来判断。

其中的AND逻辑运算符表示括号内的多个条件必须同时成立,结果才为True。

OR逻辑运算符表示括号内的多个条件任意一个成立,结果就返回True。
在这里插入图片描述

这就是IF函数的多条件使用方法,多条件还有另外一种写法。

就是用*代替AND,用+代替OR

下来演示一下如何使用+实现OR的功能。

现在我们要找出模考八和平均分中只要有一次成绩大于等于108的同学。

总评为优秀,不满足的不显示总评。

只要将公式改成IF((J5>=108)+(O5>=108),“优秀”,“”)。

每个条件要用()括起来,中间用+连接。

表示多个条件间是或的关系,只要满足一个,结果就是True。
在这里插入图片描述

4、IF({1,0},返回值1,返回值2)的用法

IF函数还有一个更加神奇的用法,返回值为数组,这里简单描述一下Excel中的数组。

数组就是指一组数,这些数可以是纵向的一组,也可以是横向的一组,也可以是二维数组。

数组的表示方式是{}。

数组可以理解为多个单元格的集合,数组分为一维数组和二维数组。

一维数组:单行多个单元格的集合或者单列多个单元格的集合。

二维数组:多行多列单元格的集合。

逗号分隔是水平数组

{1,0,0,1}表示水平数组,具体是1行4列

分号分隔是垂直数组

{1;0;0;1;1}表示垂直数组,具体是5行1列

{1,0;1,0;1,0;1,0}表示行列数组,具体是4行2列

如果参数中,数组元素不一致,Excel会自动进行数组扩展

现在来看一下:公式IF({1,0},B5:B12,C5:C12)的含义

{1,0}表示返回的数组是1行2列

{1,0}中的1表示第1列,同时1还代表True

{1,0}中的0表示第2列,同时0还代表False

这里注意一下,在Excel中使用数组公式时,必须先选中对应的区域范围,然后输入公式,再同时按住 Ctrl+Shift+Enter 三键结束

公式中是这样{1,0},你就要提前先选择好1行2列的单元格

公式中是这样{1;0;0;1;1},你就要提前先选择好5行1列的单元格

公式中是这样{1,0,0,1},你就要提前先选择好1行4列的单元格

OK, {1,0}输入方式大家明白了

IF({1,0},B5:B12,C5:C12)


我们再来看一下{1;0}该如何输入,{1;0}表示2行1列

我们将B5:H6的数据复制到B15:H16中

第1步:选中B15:B16,因为是{1;0},表示2行1列

第2步:输入公式IF({1;0},B5:H5,B6:H6)

第3步:同时按Ctrl+Shift+Enter结束

第4步:拖动复制公式

OK, {1;0}输入方式大家明白了

IF({1;0},B5:H5,B6:H6)


我们刚才演示了{1,0}和{1;0}的用法,下来我们看看{0,1}的用法

公式IF({0,1},B5:B12,C5:C12)中

{0,1}表示返回的数组是1行2列

{0,1}中的0表示第1列,同时0还代表False,那么第1列返回的是C5:C12

{0,1}中的1表示第2列,同时1还代表True,那么第2列返回的是B5:B12

这公式干了什么?原来{0,1}就把B列和C列数据互换了位置

这个互换非常有用,因为使用函数Vlookup时,是从左边列往右边列查,但我们有时需要根据右边列查左边列的数据,在不允许变动表格列时,{0,1}就跳了出来,给Vlookup说,我能解决。

IF({0,1},B5:B12,C5:C12)

到这里,大家觉得应该掌握了IF({1,0},返回值1,返回值2)的用法

那么公式IF({0,1,1},B5:D12,O5:O12)表示什么呢?

首先{0,1,1}表示返回的数组是1行3列

{0,1,1}中的0表示第1列,同时0还代表False,那么第1列返回的是O5:O12

{0,1,1}中的第一个1表示第2列,同时1还代表True,那么第2列返回的是B5:D12中的第二列

{0,1,1}中的第二个1表示第3列,同时1还代表True,那么第32列返回的是B5:D12中的第三列

IF({0,1,1},B5:D12,O5:O12)

至于{1,0;1,0;1,0;1,0}的用法,大家琢磨一下就想通了。

Ok,大功告成,你离大神又进了一步。


http://chatgpt.dhexx.cn/article/DRA9qfQM.shtml

相关文章

【如何使用Excel实现包含关系】

&#xff08;1&#xff09;问题&#xff1a; 需查询A单元格中是否包含E单元格中的内容&#xff0c;该如何实现&#xff0c;本文通过使用Excel的find函数、search函数对比输出结果。 &#xff08;2&#xff09;解决 A、E列为数据源&#xff1b;B、C列为输出结果。如果有数值输出…

Excel判断某字符是否包含在特定字符串中

Excel中可以利用find&#xff08;search&#xff09;函数、substitute函数或者countif函数&#xff0c;或者mid函数结合数组公式等来判断某单元格里是否包含某个字符。 工具&#xff1a;Office2013 方法如下&#xff1a; 判断A列单元格里是否包含“木”&#xff1a; 方法一…

Excel如何判断某单元格或者字符串中是否包含某些字符?

1.判断字符串是否含有某字符&#xff0c;区分大小写 比如判断字符串中是否包含大写字母A&#xff0c;可用公式IF(ISNUMBER(FIND("A",A2)),"有","无")。含有小写字母a的结果是无&#xff0c;该公式里的FIND函数提取的是指定的字符区分大小写&…

Excel用什么函数判断一个字符串中是否包含某些字符?

主要操作步骤&#xff1a;用公式IF(ISNUMBER(FIND("A",A1)),"有","无")&#xff0c;即可。 具体操作步骤&#xff1a; 判断字符串中是否包含大写字母A&#xff0c;可用公式IF(ISNUMBER(FIND("A",A1)),"有","无"…

excel如何使用函数判断包含某值

如图所示为例&#xff1a;A列是公司名称&#xff0c;需在B列判断A列的文本是不是包含“北京”这两个字。 如图所示&#xff0c;双击B2&#xff0c;输入公式&#xff1a;FIND("北京",A2)&#xff0c;B2单元格返回1&#xff0c;表示“北京”两个字在A2的文本出现的位…

你需要的Excel常用函数都在这里!

Excel常用函数包括逻辑函数、数学函数、文本函数、统计函数、日期函数&#xff0c;熟练并运用好函数&#xff0c;能够让复杂的问题简单化&#xff0c;可以做到批处理&#xff0c;加快处理各种统计、计算类工作。 下面就来一起学习吧。建议收藏&#xff01;&#xff08;避免 &qu…

MATLAB中对一个二维矩阵画三维图

本人实际遇到的问题如下&#xff1a; 现有一个400*400二维矩阵&#xff0c;画一个三维图&#xff0c;横坐标是矩阵元素的行号&#xff0c;纵坐标是矩阵元素的列号&#xff0c;三维图形显示的高度/值是矩阵上对应的元素值。 可实现程序如下&#xff1a; x Plot_Talbe(400, 400…

MATLAB对一个二维矩阵画三维图

1 准备好二维矩阵&#xff0c;比如我这有个3x16的矩阵叫SFW1 2 画三维图&#xff0c;一句代码就OK mesh(SFW1)3 结果如下

Matlab三维矩阵变换行列

原始数据如下图&#xff1a;是一个三维矩阵为2100*40*19的数据信息&#xff0c;现在根据用户需求需要改变数据的维度数据信息。 原始数据信息为rawTracePerson1.mat是dataTrial的一个三维数据信息2100*40*19的数据信息。 需求1&#xff1a;现在根据需求需要将数据信息转化为da…

Matlab系列之三维图形

Matlab系列之三维图形 序三维曲线图举例结果 三维网格图举例1结果1举例2结果2 三维曲面图举例1结果1举例2结果2 三维图形的修饰三维图形的视点处理view函数介绍举例1结果1举例2结果2 颜色处理举例结果 光照处理举例结果 结束更多精彩&#xff0c;等你发现~ 序 在Matlab中&…

matlab绘画三维图形(三)

作图均在方法一上的数据进行更改。 对散点图拟合三维网格图形: 方法一(可控制网格上的密度&#xff1a; numxlsread(data_2011a.xls, B4:E322) %读取出该区域的数据作为表格 Anum(:,1) %从B矩阵取出第一列的所有行 Bnum(:,2) Cnum(:,3) xxlinspace(min(A),max(A),50); %产…

【MATLAB】三维旋转的实现

1 三维旋转的表达方式 三维空间中常用的表示旋转的方式有&#xff1a; **[1]旋转矩阵(rotation matrix) [2]旋转向量(rotation vector&#xff09;/角轴&#xff08;轴角&#xff09;(axis angle) [3]欧拉角(euler angles) [4]四元数(quaternion)**主动旋转和被动旋转&#x…

matlab的2维矩阵和3维矩阵维度变换,二维矩阵变换三维矩阵,2D矩阵转换3D矩阵

点赞加关注 1 3维降到2维 % 3维变2维&#xff08;m,1,n&#xff09;变成&#xff08;m,n&#xff09; aones(3,1,2) a(:,:,1)[1,1,1] a(:,:,2)[2,2,2]%a是(3,1,2) breshape(a,3,2)%把3行1列2页的矩阵&#xff0c;插到列中。形变函数不变转到列的增加。%3维变2维&#xff08;m,…

MATLAB——三维图像

1.绘制三位曲线 &#xff08;1&#xff09;plot3函数 1.基本用法&#xff1a;plot3(x,y,z);其中&#xff0c;参数x、y、z组成一组曲线的坐标。 例1 绘制一条空间曲线 x[0.2,1.8,2.5]; y[1.3,2.8,1.1]; z[0.4,1.2,1.6]; plot3(x,y,z) grid on axis([0,3,1,3,0,2]);例2 绘制螺…

备战数学建模1——MATLAB矩阵,二维图、三维图!(超级全面易懂)

目录 一、矩阵超级基础的内容1.创建一个1行6列的矩阵2.对矩阵中每个元素都加33.plot函数作图。4.多维矩阵与常见运算5.矩阵乘法&#xff0c;和矩阵点乘6.使用矩阵A对方程A*x b求解7.Matlab的迁就补全&#xff08;标量非标量&#xff0c;不同维度&#xff09; 二、Matlab四种常见…

MATLAB学习与使用:使用矩阵绘制三维图形

MATLAB绘制三维图形 1.基本的绘图命令 1&#xff09;plot3函数 plot3(x,y,z)%x,y,z为向量或者矩阵 注意x,y,z全为向量时向量长度必须相同 plot3(x,y,z,b.,MarkerSize,0.5) % MarkerSize 表示点的大小&#xff0c;b.表示绿色的点。 eg.绘制三维螺旋线&#xff08;向量为参数&…

MATLAB中怎样初始化(创建)二维、三维、四维以及多维矩阵,各维度的索引顺序是怎样的?

目录 1 在MATLAB中初始化二维矩阵2 在MATLAB中初始化三维矩阵3 在MATLAB中初始化四维矩阵4 在MATLAB中初始化N维矩阵 1 在MATLAB中初始化二维矩阵 在MATLAB中初始化一个二维矩阵是很容易的&#xff0c;我们既可以直接把矩阵的元素值写出&#xff0c;比如下面这样&#xff1a; …

matlab的三维数组(三维矩阵)

matlab的三维矩阵与其他编程语言不太一样 比如&#xff1a; test4.java public class test4 {public static void main(String[] args){int[][][] arr new int[][][]{{{1,2,3},{4,5,6},},{{7,8,9},{10,11,12},},};} }这个程序里arr是个2*2*3的数组。 在java里 arr[i][j][k]表…

Java 面向对象基本理解

1. 类和对象 1.1 类和对象的理解【理解】 客观存在的事物皆为对象 &#xff0c;所以我们也常常说万物皆对象。 类 类的理解 类是对现实生活中一类具有共同属性和行为的事物的抽象 类是对象的数据类型&#xff0c;类是具有相同属性和行为的一组对象的集合 简单理解&#xff1a;类…

JS面向对象的理解

JS面向对象的理解 1.理解对象1.1.new 操作符 Object 创建对象1.2.字面式创建对象 2.创建对象2.1.工厂模式2.2.构造函数模式2.3.原型模式2.3.1.原型模式2.3.2.理解原型对象2.3.3.原型与in操作符2.3.4.更简单的原型语法2.3.5.原型的动态性2.3.6.原型对象的原型2.3.7.原型对象的问…