【Excel技巧1001-26】- 公式嵌套了超过了64层,是高手吗?

距离上次更新又过了数日

不过我们还是回来继续更啦

数日来,一直没有什么素材,

今天逛了一下论坛,

发现了一位小伙伴他的公式需求,

说是要超过了Excel64层嵌套的限制,

UC震惊部的感觉……

先感受一下强大的多层嵌套:

这婀娜多姿的公式,

说实在的小编还是非常佩服的,

这多多层嵌套,一般人早已晕了,

但是这确实不是一种非常合适的处理方案。

其实一个非常简短的公式即可全部搞定,

让我们来分析分析

原始需求

A列网址如果包含F列中的内容就把对应的G列返回到B列

翻译一下,就是包含返回对应值

分析需求

1、查找包含可以使用Excel中的FIND函数

语法:FIND(查什么,在哪里查)
结果:如何查到返回对应的位置,否则返回#VALUE错误
在一组数据中查找同理,只是返回了多个值,一一对应
2、不使用IF如何一一对应起来,这里我们使用LOOKUP函数

如何能查找得到,我们就可以直接得到值,不用管多少条件,
这里我们要做的就是做好对照表(配置好对应关系即可)
公式:=LOOKUP(1,0/FIND($F$2:$F$73,A2),$G$2:$G$73)
由于LOOKUP函数使用二分法,具体原理这里我们不展开,有兴趣的小伙伴自行学习一下
这里我们讲一下套路:=LOOKUP(1,0/条件判断,对应返回)
结果返回有多个满足条件,返回最后一个满足条件的值


容错处理

函数语法:IFERROR(源公式,出错显示内容)
使用IFERROR函数,把匹配不到的错误显示的更友好

对应公式:=IFERROR(LOOKUP(1,0/FIND($F$2:$F$73,A2),$G$2:$G$73),"无对应名称")

当然这样的问题我们还有很多公式可以解决这里我们放几个供参考:

补充公式1:=IFERROR(INDEX(G:G,MIN(IF(ISNUMBER(FIND($F$2:$F$73,A2)),ROW($F$2:$F$73)),9^9)),"无对应名称")

补充公式2:=IFERROR(INDIRECT("G"&MAX(COUNTIF(A2,"*"&$F$2:$F$73&"*")*ROW($F$2:$F$73))),"无对应名称")

……

小结:高手不追求"长度",短小精炼才是他们的所64,再复杂的需求,换一个角度或者公式处理就会简化很多,函数的积累对这类问题非常重要

(0)

相关推荐