EXCEL函数常用技巧浅析技巧五:IF函数浅析
IF函数应用范围很广,在写这个函数之前,我犹豫了很久,这个函数如果想要把他完全写清楚是一件比较困难的事情,因为配合其它函数使用较多,这里我先把我所想到的先写下来,欢迎各位前辈高人指点.
一:IF函数的基本功能
IF函数最基本的功能就是对条件表达式进行判断,如果条件表达式为TRUE或不等于0则返回第二参数,否则返回第三参如果忽略第三参数,则返回FALSE,注意:第二参数是忽略不了的.
完整参数第二参数只写逗号第三参数只写
TRUE1=IF(B10,1,2)TRUE0=IF(G11,,2)1
FALSE2=IF(B11,1,2)FALSE2=IF(G12,,2)0
11=IF(B12,1,2)10=IF(G13,,2)1
-11=IF(B13,1,2)-10=IF(G14,,2)1
-0.11=IF(B14,1,2)-0.10=IF(G15,,2)1
0.11=IF(B15,1,2)0.10=IF(G16,,2)1
02=IF(B16,1,2)02=IF(G17,,2)0
二:IF函数的数组运用
IF函数的数组运用与技巧四的数组的基本原理是一样的,只是IF函数多了一个表达式来控制返回的结果,IF函数的三个参
1.重构数组实现反向查,IF({1,0},数组,数组),此种方法在VLOOKUP函数里应用最多,虽然我们可以应用其它办法来解
如下表:我们要依据姓名来查他所属部门,
部门姓名查姓名:
销售部张三张三销售部
人事部李四=VLOOKUP(E26,IF({1,0},C26:C30,B26:B30),2,0)
资材部王五
生产部陈六
业务部刘七
第一步:此种列表如果要用VLOOKUP函数来解决的话,首先我们会发现,VLOOKUP 函数搜索某个单元格区域(区域:单元格可以相邻或不相邻。)的第一列,然后返回该区域相同行上任何单元格中的值,显然我们利用
行不通,这样就需要重新构造VLOOKUP函数的第二参数使姓名在第一列,部门在后面列来查,这里我们就可以通过IF函张三销售部
李四人事部
王五资材部
陈六生产部
刘七业务部
=IF({1,0},C26:C30,B26:B30)
这里我们利用IF函数的第一参数不等于0返回第二参数,第一参数为0返回第三参数,根椐数组的扩展性,构造成一个姓名根据数组的基本原理,这里设置的第一参数会自动扩展成与第二参数,第三参数相同行数的二维数组,IF函数的第一参数{1,0}扩展成
10
10
10
10
10
然后IF函数再根据上面的二维数组分别返回结果,形成我们上面所得到的二维数组;
第二步:取得上面的数组后我们就可以根据VLOOKUP函数的特性来取得结果了,我们重构数组后,第一列是姓名,第二列第三参数所以为2,再把第四参数设为精确查.
李四人事部
=VLOOKUP(B53,IF({1,0},C26:C30,B26:B30),2,0)
2.数组加强,理解IF函数的各个参数的对应设置
2.1 =IF({1,0;1,0},{1;2},{3;4})
131
242
=IF({1,0;1,0},{1;2},{3;4})
IF函数的第一参数可以决定结果的方向,在此例中,IF函数的第一参数为一个二行二列的数组,第二三参数分别为一列两第二参数扩展为第三参数扩展为
1133
2244
然后由IF函数的第一参数在两个数组中取数,如果为1则取第二参数扩展数组相对应的数值,如果为0则取第三参数扩展数13
24
=IF({1,0;1,0},{1;2},{3;4})
2.2 =IF({1,0;1,0},1,2)
12
12
=IF({1,0;1,0},1,2)
此例与上例类似,第二三参数分别扩展为与第一参数一样的二行二列数组,然后再由第一参数在三个扩展数组中取值;
第二参数扩展为第三参数扩展为
1122
1122
取值同上
2.3 =IF({1,0;1,0;1,0},{1,2},{3,4})
14
14
14
=IF({1,0;1,0;1,0},{1,2},{3,4})
此例第一参数为二列三行的数组,第二参数与第三参数为二列一行的数组,这里第二参数与第三参数也会自动扩展,第二参数扩展为第三参数扩展为
1234
1234
1234
取数时,因为1在第一列,所以取第二参数扩展数组第一列的值1,0在第二列,取第三参数扩展数组第二列的值4;
14
14
14
=IF({1,0;1,0;1,0},{1,2},{3,4})
2.4 =IF({1,0;1,0;1,0},{1,2;3,4;5,6},0)
10
30
50
=IF({1,0;1,0;1,0},{1,2;3,4;5,6},0)
此例相对于来说也比较容易理解,第二参数与第一参对称,第二参数扩展为二列三行的数组.
第二参数本身对称第一参数第三参数扩展为
1200
3400
5600
取值方法同上例
2.5 =IF({1;0;0},{1,2;3,4;5,6},0)
12
00
00
=IF({1;0;0},{1,2;3,4;5,6},0)
此例第一参数为一列三行的数组,第二参数为二列三行的数组,第三参数为单个元素,第一参数的行数与第二参数对称,第第一参数行数与第二参数对称第二参数不变第三参数扩展为
111200
003400
vlookup函数8种用法005600再根据IF函数的特性取相对应的值
2.6 =IF({1;0;1;0},{1,2;3,4;5,6},0)、=IF({1;0;1;1},{1,2;3,4;5,6},0)与=IF({1;0},{1,2;3,4;5,6;7,8},{0,9,10})的区别
121212
000009
5656#N/A#N/A
00#N/A#N/A#N/A#N/A
=IF({1;0;1;0},{1,2;3,4;5,6},0)=IF({1;0;1;1},{1,2;3,4;5,6},0)=IF({1;0},{1,2;3,4;5,6;7,8},{0,9,10})
通过比较我们可以看到,IF函数的结果:纵向大小是由任意参数的最大纵向数组决定,横向大小是任意参数的最大横向数组行或列不对称时是不能自动扩展,当无对应值时会产生错误。
三:N(IF({1},))或T(IF({1},))结构
N(IF({1},))或T(IF({1},))结构结构可以对某些不支持数组参数的参数数组化,返回内存数组;此种方法在技巧四中介绍过了因为函数以我的水平是无法从理论上来解释某种现象,只有通过不断的测试才能发现新的方法与技巧。
此贴由chenhh803原创,转贴请先征求本人同意
函数常用技巧浅析(五)
写清楚是一件比较困难的事情,因为我们单独用IF的时候比交少,一般
则返回第二参数,否则返回第三参数;如果第二三参数只写逗号,则默认返回0;
=IF(G11,1,)1=IF(F11,1)0=IF(F12,)
=IF(G12,1,)FALSE=IF(F12,1)FALSE=IF(F13,)
=IF(G13,1,)1=IF(F13,1)0=IF(F14,)
=IF(G14,1,)1=IF(F14,1)0=IF(F15,)
=IF(G15,1,)1=IF(F15,1)0=IF(F16,)
=IF(G16,1,)1=IF(F16,1)0=IF(F17,)
=IF(G17,1,)FALSE=IF(F17,1)FALSE=IF(F18,)
来控制返回的结果,IF函数的三个参数都支持数组,所以在日常数组公式中运用非常之广. ,虽然我们可以应用其它办法来解决,但这种思路还是需要学习一下的;
B30),2,0)
函数搜索某个单元格区域(区域:工作表上的两个或多个单元格。区域中的们利用第二列来查第一列根据VLOOKUP函数的特性直接查是的
来查,这里我们就可以通过IF函数的数组特性来构造了;
椐数组的扩展性,构造成一个姓名在前,部门在后的五行两列的二维数组
数的二维数组,IF函数的第一参数可以驱动结果的方向,
重构数组后,第一列是姓名,第二列是部门,在第一列查,返回第二列的值,
这种表达方式只是第二
参数写逗号,第三参数数只写逗号忽略第三参数
的数组,第二三参数分别为一列两行的数组,则第二参数自运扩展为一个二行二列的数组.的数值,如果为0则取第三参数扩展数组中相对应的值;
一参数在三个扩展数组中取值;
数与第三参数也会自动扩展,
数扩展数组第二列的值4;
第一参数的行数与第二参数对称,第三参数为单个元素,三个参数运算时分别为以下数组;
4;5,6;7,8},{0,9,10})的区别
#N/A
10
#N/A
#N/A
{1,2;3,4;5,6;7,8},{0,9,10})
,横向大小是任意参数的最大横向数组决定,当参数不是单个元素时而且
数组;此种方法在技巧四中介绍过了,就不再多讲了,这里我们只能是理解这种方法能够实现这种功能,新的方法与技巧。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论