【回复贴】多个条件串联起来就出错了

懒得批爆
懒得批爆

WPS寻令官 | WPS产品体验官

原贴地址:https://bbs.wps.cn/topic/22128

您好,您的公式非常长,而且嵌套了很多IF函数,这可能会导致公式难以阅读和维护。我建议使用IFS函数来简化您的公式。IFS函数可以让您不必嵌套多个IF,使公式更加清晰。

=IFS(
U4="白关卡航普快", INDEX(AB4:AB23, MATCH(T4, {100,110,120,130,140,150,160,170,180,190,200,250,300,350,400,500,600,800,1000,10000}, 1)),
U4="西线单一品名特快", INDEX(AC4:AC23, MATCH(T4, {100,110,120,130,140,150,160,170,180,190,200,250,300,350,400,500,600,800,1000,10000}, 1)),
U4="北疆特快散货-百货", INDEX(AE4:AE22, MATCH(T4, {100,110,120,130,140,150,160,170,180,190,200,250,300,350,400,600,800,1000,10000}, 1)),
U4="北疆特快散货-服装", INDEX(AG4:AG19, MATCH(T4, {100,110,120,130,140,150,160,170,180,190,200,250,300,350,400,10000}, 1)),
U4="普快散货-百货", INDEX(AI4:AI22, MATCH(T4, {100,110,120,130,140,150,160,170,180,190,200,250,300,350,400,600,800,1000,10000}, 1)),
U4="普快散货-服装", INDEX(AK4:AK19, MATCH(T4, {100,110,120,130,140,150,160,170,180,190,200,250,300,350,400,10000}, 1)),
U4="一带一路小百拼柜", INDEX(AM4:AM23, MATCH(T4, {100,110,120,130,140,150,160,170,180,190,200,250,300,350,400,500,600,800,1000,10000}, 1)),
U4="玩具专线", INDEX(AO4:AO13, MATCH(T4, {120,130,140,150,160,170,180,190,200,10000}, 1))
)

在这个公式中,我使用了INDEXMATCH函数来查找和返回正确的值。MATCH函数会查找T4单元格中的值在数组中的位置,然后INDEX函数会根据这个位置返回相应的单元格中的值。我还在数组的最后添加了一个很大的数字10000,以便处理T4大于1000的情况。


原公式:2472个字符

新公式:989个字符


优化后的公式使用INDEXMATCH函数替代了多层嵌套的IF,这样做减少了重复的逻辑判断,使得公式的执行更为高效。

🔔

请根据您的实际需要调整单元格范围和数组中的值。如果您有任何疑问,或者需要进一步的帮助,请留言,谢谢。

四川省
浏览 1417
收藏
7
分享
7 +1
7
+1
全部评论 7
 
漫反射
这是函数还是开火车啊。
· 四川省
回复
 
HC.旋
HC.旋

WPS寻令官

好家伙。。。
· 福建省
1
回复
 
马成功老师
马成功老师

创作者俱乐部成员

好家伙厉害,这是我迄今为止见过的 函数最长的 ,开眼了
· 北京
1
回复
 
方盛
方盛

创作者俱乐部成员

点赞学习
· 湖北省
1
回复
 
亂雲飛渡
亂雲飛渡

WPS寻令官

点赞
· 广东省
1
回复
 
清华学弟任泽岩
清华学弟任泽岩

创作者俱乐部成员

思路非常清晰,思考问题和帖子写作都是
· 辽宁省
回复
懒得批爆
懒得批爆

WPS寻令官 | WPS产品体验官

没有看到原表格,也不知道判断逻辑 就没有对公式验证 只是优化了下繁琐的if嵌套,以前的工作中嵌套8层就头昏脑胀 现在更新了IFS函数后全部修改了,看起来很清晰 主要是其他的函数使用率不高也没过多的深入
· 四川省
1
回复