Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 8716|回复: 22

多条件嵌套公式

[复制链接]
发表于 2019-10-21 16:43 | 显示全部楼层 |阅读模式
2学分
本帖最后由 SEh0906 于 2019-10-22 12:24 编辑

条件:
1.如果产品零售价不在定价范围内为疑问a(售出商品的商家为百货店则可超出定价范围的1.2)
2.如果产品的零售价/最低成交价>2.1(产品种类为a的产品,此比例为1.3,种类为d的产品,比例为1.8),为疑问b
3.如果产品的成交价>零售价,为疑问c

大致条件如上所述,目前我设置的公式只能单一显示疑问a,疑问b和疑问c,但是如果同时满足条件1和条件2,能否显示成疑问a/b?这种多重的情况,一共有四个(ab,ac,bc,abc),要怎么设置一个比较精简的公式能同时满足单个显示以及复合显示呢?


详细请看附件


目前设置的具体公式为:=IF(AND(IF(OR(C2="",C2=0,C2<(INDEX(数据源!D:D,MATCH(B2,数据源!B:B,0))),IF(ISNUMBER(FIND("百货",A2)),C2>(INDEX(数据源!E:E,MATCH(B2,数据源!B:B,0)))*1.2,C2>(INDEX(数据源!E:E,MATCH(B2,数据源!B:B,0))))),"疑问a","")="疑问a",IF((AND(IFERROR(C2/D2,"0")=1,IFERROR(D2/E2,"0")=1,IFERROR(E2/F2,"0")=1,C2<>0,C2<>""))=FALSE,"有疑问","")="有疑问"),"疑问a",IF(AND(IF(OR(AND(INDEX(数据源!C:C,MATCH(B2,数据源!B:B,0))="a",IFERROR(C2/E2,"")<>"",IFERROR(C2/E2,"")>2.1),AND(INDEX(数据源!C:C,MATCH(B2,数据源!B:B,0))="d",IFERROR(C2/E2,"")<>"",IFERROR(C2/E2,"")>1.8),AND(AND(INDEX(数据源!C:C,MATCH(B2,数据源!B:B,0))<>"a",INDEX(数据源!C:C,MATCH(B2,数据源!B:B,0))<>"d"),IFERROR(C2/E2,"")<>"",IFERROR(C2/E2,"")>1.3)),"疑问b","")="疑问b",IF((AND(IFERROR(C2/D2,"0")=1,IFERROR(D2/E2,"0")=1,IFERROR(E2/F2,"0")=1,C2<>0,C2<>""))=FALSE,"有疑问","")="有疑问"),"疑问b",IF(OR(AND((IFERROR(C2/E2,""))<>"",(IFERROR(C2/E2,""))<1),AND((IFERROR(C2/D2,""))<>"",(IFERROR(C2/D2,""))<1)),"疑问c","")))



微信截图_20191021163045.png

条件函数.rar

15.33 KB, 下载次数: 9

最佳答案

查看完整内容

=IF(SUM(D2:F2)=0,"",IFERROR(LOOKUP($C2,OFFSET(数据源!D$1:E$1,MATCH($B2,数据源!$B:$B,0)-1,)*IF(ISERROR(FIND("百货",$A2)),1,{0.8,1.2})+{0,0.01},{"","疑问a"}),"疑问a")&IF($C2>E2*VLOOKUP(VLOOKUP(检查!$B2,数据源!$B:$C,2,0),{"a",2.1;"b",1.8;"c",1.3},2,0),"疑问b","")&IF(OR(C2
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2019-10-21 16:43 | 显示全部楼层
=IF(SUM(D2:F2)=0,"",IFERROR(LOOKUP($C2,OFFSET(数据源!D$1:E$1,MATCH($B2,数据源!$B:$B,0)-1,)*IF(ISERROR(FIND("百货",$A2)),1,{0.8,1.2})+{0,0.01},{"","疑问a"}),"疑问a")&IF($C2>E2*VLOOKUP(VLOOKUP(检查!$B2,数据源!$B:$C,2,0),{"a",2.1;"b",1.8;"c",1.3},2,0),"疑问b","")&IF(OR(C2<D2,C2<E2),"疑问c",""))
回复

使用道具 举报

发表于 2019-10-21 17:03 | 显示全部楼层
本帖最后由 cutecpu 于 2019-10-21 17:07 编辑

您好,
1. 「百货店则可超出定价范围的1.2」意思是: 容許零售價在定價「最高範圍」*1.2倍以內嗎?
2. 您使用的 Excel 版本支援 TEXTJOIN 函數嗎?


回复

使用道具 举报

 楼主| 发表于 2019-10-21 17:11 | 显示全部楼层
cutecpu 发表于 2019-10-21 17:03
您好,
1. 「百货店则可超出定价范围的1.2」意思是: 容許零售價在定價「最高範圍」*1.2倍以內嗎?
2. 您 ...

您的理解是对的,百货店定价范围可为该商品的最高范围*1.2;
我使用的版本是2016版,支持textjoin函数,但是我不了解这个函数,请指教
回复

使用道具 举报

发表于 2019-10-21 17:43 | 显示全部楼层
眼花缭乱
回复

使用道具 举报

发表于 2019-10-21 18:19 | 显示全部楼层

聲勢浩大,非常壯觀{:9_303:}
回复

使用道具 举报

发表于 2019-10-21 19:18 | 显示全部楼层
本帖最后由 cutecpu 于 2019-10-21 19:25 编辑

H2 公式(輔助列):
=OR(
C2<VLOOKUP(B2,数据源!$B$2:$E$24,3,),
C2>VLOOKUP(B2,数据源!$B$2:$E$24,4,)*(1+(RIGHT(A2,2)="百货")*0.2)
)

I2 公式(輔助列) :
=IF(E2,C2/E2>LOOKUP(VLOOKUP(B2,数据源!$B$2:$C$24,2,),{"a","b","c","d"},{1.3,2.1,2.1,1.8}),FALSE)

J2 公式(輔助列) : =D2>C2

K2 公式(判斷列): =TEXTJOIN("/",,LOOKUP(COLUMN(A:C)*H2:J2,{0,1,2,3},{"","a","b","c"}))

注意: TEXTJOIN 函數支援版本 Excel 2016 以上

※如果有解決您的問題,再請將帖子設為[已解決]

祝順心,南無阿彌陀佛!



log.png

条件函数.rar

17.47 KB, 下载次数: 4

回复

使用道具 举报

 楼主| 发表于 2019-10-21 22:24 | 显示全部楼层
cutecpu 发表于 2019-10-21 19:18
H2 公式(輔助列):
=OR(
C2VLOOKUP(B2,数据源!$B$2:$E$24,4,)*(1+(RIGHT(A2,2)="百货")*0.2)

果然还是要辅助列吗{:3_55:},其实很怕数组公式会导致Excel很卡,体积很大
回复

使用道具 举报

发表于 2019-10-22 03:19 | 显示全部楼层
SEh0906 发表于 2019-10-21 22:24
果然还是要辅助列吗,其实很怕数组公式会导致Excel很卡,体积很大

您好,
1. 拆成輔助列是讓可讀性變好,
你可以知道各別條件的狀況,也
容易維護與修改
2. 若不要輔助列,可以參考七樓
的解法!
祝順心,南無阿彌陀佛!
回复

使用道具 举报

 楼主| 发表于 2019-10-22 10:17 | 显示全部楼层
0126 发表于 2019-10-21 19:26
=IF(SUM(D2:F2)=0,"",IFERROR(LOOKUP($C2,OFFSET(数据源!D$1:E$1,MATCH($B2,数据源!$B:$B,0)-1,)*IF(ISERRO ...

您好,我想问一下,中间这个+{0,0.01}是什么意思呢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-6-8 07:50 , Processed in 0.303538 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表