1、解决这个问题我们首先要熟悉IF、FIND、LEFT、MID等四个函数的语法结构:IF函数的语法结构:朐袁噙岿IF(logical_test,value_if_true,value_if_false);IF函数的汉语解释:IF(判断值,判断值为真的返回值,判断值为假的返回值);FIND函数的语法结构:FIND(find_text,within_text,start_num);FIND函数的汉语解释:FIND(要查找的文本,包含要查找文本的文本,指定开始进行查找的字符);LEFT函数的语法结构:LEFT( string, n )LEFT函数的汉语解释:LEFT(字符串,要从左向右截取的字符个数);MID函数的语法结构:mid(text, start_num, num_chars);MID函数的汉语解释:mid(字符串,开始截取位置,截取字符个数);
2、明确什么是嵌套函数:嵌套函数,就是指在某些情况下,您可能需要将某函数作为另一函数的参数使用,这一函数就是嵌套函数。
3、工作问题: 已知如下图在excel表格中的D列已经显示的是学生姓名,I列是从其它表格中复制过来的父母亲的姓名(母亲和父亲的姓名都在I列,父母的姓名之间用是用逗号隔开的,并且父母亲的顺序是随机的,如下图所示),要求根据以上信息,在表格的C列中填入父亲的姓名,我们该怎么办?现在我就用EXCEL嵌套函数提取父亲的姓名,仅供大家参考:
4、首先在C3单元格中输入公式=IF(FIND(LEFT(D3,1),I3,1)>1, MID(I3,FIND(LEFT(D3,1),I3,1),3),LEFT(I3,FIND(",",I3,1)-1)),然后拖动C3单元格右下角的填充柄至C7。
5、思路解析: 在这个嵌套函数里面我注意到I列中父母的名字都是中间用逗号隔开的,所以这个逗号是解决问题的突破口,只要从这里开始思考,问题就会迎刃而解,下面我分以下几步对第二种解法进行庖丁解牛式的思路解析: 1、首先我们要知道D列的学生姓氏在I列中出现的位置(一般情况下孩子的姓氏和父亲的相同),找到了这个姓氏所在的位置,我们就可以知道父亲的姓名在逗号之前还是在逗号之后(如果FIND(LEFT(D3,1),I3,1)函数的返回值等于1,说明父亲姓名在逗号前面,如果大于1,说明父亲姓名在逗号的后面),我们先以上图“张娟”这位学生为例,FIND(LEFT(D3,1),I3,1)函数的返回值是4,是大于1的,所以执行的是MID(I3,FIND(LEFT(D3,1),I3,1),3)这个函数段,我们再以“吴永前”这名学生为例,FIND(LEFT(D3,1),I3,1)函数的返回值是1,是等于1的,所以执行的是LEFT(I3,FIND(“,”,I3,1)-1)这个函数段。 2、从上面的介绍中相信大家肯定注意到了三个函数段:FIND(LEFT(D3,1),I3,1);MID(I3,FIND(LEFT(D3,1),I3,1),3);LEFT(I3,FIND(“,”,I3,1)-1)。FIND(LEFT(D3,1),I3,1)函数段是用于确定D列中学生的姓氏在I列中出现的位置的;MID(I3,FIND(LEFT(D3,1),I3,1),3)函数段是在FIND(LEFT(D3,1),I3,1)函数段的返回值大于1时执行的,它执行的结果是返回I列中逗号后面的姓名的,也就是父亲姓名在逗号后面的情况下执行的函数段。LEFT(I3,FIND(“,”,I3,1)-1)函数段是在FIND(LEFT(D3,1),I3,1)函数段的返回值等于1时执行的,它执行的结果是返回I列中逗号前面的姓名的,也就是父亲姓名在逗号前面的情况下执行的函数段。 3、注意点:函数段LEFT(I3,FIND(“,”,I3,1)-1)中的逗号和I列中的逗号都要在英文状态下输入的逗号,不然的话会出现错误,所以在使用本公式之前要把I列中的逗号替换成英文状态下的逗号以后再使用本公式;当FIND(LEFT(D3,1),I3,1)的返回值为错误值得时候,说明FIND(LEFT(D3,1),I3,1)函数段在I列没有找到和学生姓氏相同的姓氏,这就说明还在家庭成员中没有父亲或者有其他的特殊情况,这种情况要单独处理,毕竟这种情况是极其少数的事情,可以手动输入。