关于excel中if,and和vlookup的嵌套逻辑关系

2024-11-14 11:36:23
推荐回答(3个)
回答1:

对于复杂函数,从外而内,一层层的剥。

第一层:IF(AND(E3="",E4=""),"",分支2)
意思是,如果E3\E4都为空,那么返回空,否则执行分支2

第二层:第一层的“分支2”
=IF(AND(NOT(E3=""),E4=""),VLOOKUP(E3,新进员工培训成绩统计表!A4:L21,12,0),分支2-2)
意思是:排除了第一种的情况之后,如果E3不为空,并且E4为空,那么用VLOOKUP在“新进员工培训成绩统计表!A4:L21”的区域的第一列就是A列查找E3,并返回区域的12列也就是L列对应的值。

第三层:第二层的“分支2-2”
IF(NOT(E4=""),VLOOKUP(E4,新进员工培训成绩统计表!B4:L21,11,0))
意思是:排除了上述第一种和第二种的情况之后,只要E4不为空(实际上也就是E3和E4都不为空),那么用VLOOKUP在“新进员工培训成绩统计表!B4:L21”的区域的第一列就是B列查找E4,并返回区域的11列也就是L列对应的值。

整个函数的意思,
如果E3E4都为空,就返回空白
如果E3不为空,但E4为空,那就按E3查找
如果E4不为空,那就按E4查找

补充:
整个公式貌似有点罗嗦,第三层的分支2缺省了,完全可以省略为两层IF。
另外,NOT(E4="")是对E4=""求反,改成E4<>""更明了。
而且上面表述E3和E4的空与非空无非三种情形:都为空;E3非空,E4空;E4非空(不管E3空不空)
所以,整个公式改成下面也一样,不妨试一下:
=IF(AND(E3="",E4=""),"",IF(E4<>"",VLOOKUP(E4,新进员工培训成绩统计表!B4:L21,11,0),VLOOKUP(E3,新进员工培训成绩统计表!A4:L21,12,0)))

回答2:

E3和E4都为空时,结果为空,否则如果E3不为空,E4为空时,在新进员工培训成绩统计表的A列里找E3,返回同行L列里的值,否则如果E4不为空,在新进员工培训成绩统计表的B列里找E4,返回同行N列里的值。

回答3:

楼上的是老师吧,佩服佩服.