在日常工作中经常会使用IF函数做判断,有时判断的条件比较多,一个IF“不够用”就需要使用多个IF嵌套才能完成多条件判断。比如下面这个例子。这是一份会员积分明细,我需要依据累计积分来划分会员等级。

if函数嵌套层数太多怎么办(IF多重嵌套公式太长)(1)

划分会员等级的依据如下图所示。

if函数嵌套层数太多怎么办(IF多重嵌套公式太长)(2)

这种情况需要使用三个IF嵌套完成,在C2单元格输入=IF(B2>=15000,"贵宾",IF(B2>=10000,"高级",IF(B2>=5000,"中级","普通")))

if函数嵌套层数太多怎么办(IF多重嵌套公式太长)(3)

这3个IF逻辑关系可以看下图

if函数嵌套层数太多怎么办(IF多重嵌套公式太长)(4)

条件成立(true),条件不成立(FALSE)

解析:第一个IF判断积分是否>=15000,如果条件成立,返回“贵宾”,如果不成立就“丢”给第二个IF判断。

第二个IF判断积分是否>=10000,如果条件成立,返回“高级”,如果不成立就“丢”给第三个IF判断。

第三个IF判断积分是否>=5000,如果条件成立,返回“中级”,如果条件不成立,这里就无需在判断了,因为以上3个都不成立,那肯定是<5000,直接返回“普通”

接着公式向下填充,判断所有会员积分。

if函数嵌套层数太多怎么办(IF多重嵌套公式太长)(5)

如果经常使用函数的熟手,不会有什么问题,但是这种嵌套函数对于新人朋友来说就比较“不友好”了。

新人易错和疑问点:

1、逻辑没理顺,哪个条件要先写,判断4个条件为什么只需要3个IF?

2、各种标点符号容易搞错,哪怕错一个公式都会报错

3、如果发生条件变更,新人难以维护公式(重新编辑)

那有没有更简单的方法?

有,必须有,下面就分享一个一劳永逸的方法,VBA自定义函数。

第一步、首先看下你的EXCEL这里(下图红框处)有没有开发工具

if函数嵌套层数太多怎么办(IF多重嵌套公式太长)(6)

如果没有,就点击上图红框最左边的文件,然后在屏幕左侧的菜单里选择选项,如下图

if函数嵌套层数太多怎么办(IF多重嵌套公式太长)(7)

这个时候会弹出Excel选项,点击自定义功能区——点击开发工具——点击确认

if函数嵌套层数太多怎么办(IF多重嵌套公式太长)(8)

现在开发工具就出现了

if函数嵌套层数太多怎么办(IF多重嵌套公式太长)(9)

第二步、粘贴代码

点击Visual Basic

if函数嵌套层数太多怎么办(IF多重嵌套公式太长)(10)

此时会弹出VBA编辑界面,接着点击插入——点击模块

if函数嵌套层数太多怎么办(IF多重嵌套公式太长)(11)

此时模块下面就会多了一个模块1(红框处),然后把代码复制到模块1的编辑界面里,如下图

if函数嵌套层数太多怎么办(IF多重嵌套公式太长)(12)

复制下面的代码(黑色加粗部分)↓↓↓↓↓↓↓↓↓↓↓

Function 会员等级(判断的单元格 As Range, 贵宾 As Integer, 高级 As Integer, 中级 As Integer)

If 判断的单元格 >= 贵宾 Then

会员等级 = "贵宾"

ElseIf 判断的单元格 >= 高级 Then

会员等级 = "高级"

ElseIf 判断的单元格 >= 中级 Then

会员等级 = "中级"

Else

会员等级 = "普通"

End If

End Function

代码解析(这里不是代码,不要复制):

1、代码必须放在模块中才能使用,所以一定要按照上面的操作步骤来,把代码粘贴到模块中。

2、Function 后面的会员等级这几个字就是函数的名称,是自定义的,可以修改,只要不是Excel保留字就可以,比如不能叫代码中的ELSE,因为这个词在VBA中有自己特定的意思,属于保留字。

3、代码中的引号里的中文也可以根据自己的要求修改。

3、代码其实就是把我们写在单元格中的IF挪到了这里,只要写一次,未来都按这个套路走,起到一劳永逸的效果。

第三步、保存加载宏

点击文件

if函数嵌套层数太多怎么办(IF多重嵌套公式太长)(13)

选择另存为,此时先随意选择一个路径,如本例,我选择了桌面。

if函数嵌套层数太多怎么办(IF多重嵌套公式太长)(14)

然后选择保存类型,选择Excel加载宏

if函数嵌套层数太多怎么办(IF多重嵌套公式太长)(15)

此时路径会自动跳转(红框),就保存在这里,点击保存

if函数嵌套层数太多怎么办(IF多重嵌套公式太长)(16)

然后再次来到开发工具——点击Excel加载项

if函数嵌套层数太多怎么办(IF多重嵌套公式太长)(17)

刚刚保存的加载宏文件名就已经在这里了,点击它,然后点击确认。

if函数嵌套层数太多怎么办(IF多重嵌套公式太长)(18)

此时在这个电脑里,新增的所有Excel工作簿,无需上面的操作,即可使用这个自定义函数。

4、使用自定义函数

如下图,在D2单元格输入=会员 就会弹出函数全名的提示

if函数嵌套层数太多怎么办(IF多重嵌套公式太长)(19)

可以点击fx按钮,在输入框里填入相关参数,这个自定义函数有4个参数

第一个参数,就是要判断的单元格,输入B2

第二、三、四参数分别填入贵宾、高级、中级的条件,15000、10000,、5000

然后点击确认

ps:如果条件发生更改,比如贵宾条件提高到20000,直接修改第二个参数即可。

if函数嵌套层数太多怎么办(IF多重嵌套公式太长)(20)

也可以直接在编辑栏里输入=会员等级(B2,15000,10000,5000)

if函数嵌套层数太多怎么办(IF多重嵌套公式太长)(21)

然后向下填充公式,返回的结果跟IF多重嵌套返回的结果一致,没有问题。

if函数嵌套层数太多怎么办(IF多重嵌套公式太长)(22)

自定义函数跟Excel内置的函数是一样的,可以用于嵌套使用。

好了,关于自定义函数划分会员等级就分享到这里。

如果这篇文章能帮助到你,请帮忙点赞,收藏,转发。

关注我,获取更多Excel实用技巧。

,