1、IF(条件,返回值1,返回值2)
首先你要弄懂这个函数,如果条件为真,函数的结果为“返回值1”,如果条件为假,函数的结果是“返回值2”:
if(true,10,100)=10
if(1,"A","B")="A"
if(false,20,30)=30
if(0,"你","我")="我"
2、{1,2,3,4}是一个数组,一个数组能存储多个数值,数组的表示方式是{}。
{1,0}是个水平数组,它有两个值,一个是1,另一个是0。
{"张三","李四","王五"}也是一个水平数组,它有三个值。
3、连接符&也是这个公式中的一个知识点。
"A" & "B" & "C"="ABC"
"Aaa"&"Bcd"&"123"="AaaBcd123"
字符串可以连接,数组也可以连接:
{1,2,3}&{"A","B","C"}={"1A","2B","3C"}
单元格区域也可以连接:
假如A1:A10的数据为1到10,B1:B10的数据为a到j。
A1:A10&B1:B10的结果就是
1a
2b
3c
...
10j
4、再回过来说IF()函数
当条件是一个单变量时,总代表true和false,即“真”和“假”,它总是返回两个值当中的一个。
但是
但是,当条件不是单变量,而是一个数组时,当条件为{1,0}时,结果如何呢?
记住,返回的结果与条件一样,是个数组,而且,与条件数组的列数相同。
课堂上,老师说:同学们好,我们来做个游戏,当老师举起左手的时候,你说“语文”,当老师举起右手的时候,你说100,清楚了没有?同学们都说清楚了,于是:
老师举起左手,一同学回答“语文”:If(左手,"语文",100)="语文"
老师的话隐含了一层意思,左手为真,右手为假,左手为1,右手为0:If(1,"语文",100)="语文"
接下去的游戏自然还有:If(右手,"语文",100)=100
即 If(0,"语文",100)=100
轮到第三个同学了,老师把两只手都举了起来,那么这同学怎么回答?
也许这位同学会说“老师,你有病?”当然,我更希望这位同学能回答:“语文”,100。
不是么:IF({左手,右手},"语文",100)={"语文",100}
前面提过,左手是真,右手是假,写标准点,就是:
IF({true,false},"语文",100)={"语文",100}
也是:IF({1,0},"语文",100)={"语文",100}
你糊涂了吗?
没有?
没有就好。别钻牛角尖,这个比方打得可能不太合适。
接着,老师还会把游戏继续做下去,再把规则改一改:老师举左手的时候,回答科目,举右手的时候,回答成绩。
老师举起左手,同学D回答:语文、数学、英语、计算机
老师举起右手,同学E回答:100、90、95、80
这时,老师把左右手都举了起来,老师说,如果懂了,请正确说出结果。
于是,有同学回答:"语文",100;"数学",90;"英语",95;"计算机",80
老师满意极了。
用我们熟悉的方式表现出来,就是:
=IF({1,0},科目,成绩)={"语文",100;"数学",90;"英语",95;"计算机",80}
5、现在来完整看一下上面的公式
IF({1,0},基础表!$A$3:$A$123&基础表!$C$3:$C$123&基础表!$E$3:$E$123,基础表!$D$3:$D$123)
整个公式是一个IF()函数,它的格式还是IF(条件,返回值1,返回值2)
条件是一个两列的水平数组,返回值1是工作表三列连接的结果,返回值2是独立一个列,函数返回的结果(我们需要的最终的解释结果)是一个两列多行的二给数组
|