Excel:如果所有条件都为真,嵌套的IF语句返回所有的真值
我想为所有执行的语句返回多个值true。 我使用下面的公式:
=IF( AND(I4=1,J4=1),"2G", IF( AND(Q4=1,V4=1),"3G", IF( AND(AC4=1,AG4=1),"4G", "Other")))
但是,这是从嵌套的IF
返回第一个真正的值。 如果都是真的,我想要返回所有三个值,2G 3G 4G。 像concatenated
结果。
如果没有得到“2G3G4G”,也不能得到“其他”,我build议如下:
=TRIM(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(" "," ",IF(AND(I4=1,J4=1)," 2G"," "),1)," ",IF(AND(Q4=1,V4=1),"3G "," "),3)," ",IF(AND(AC4=1,AG4=1),"4G"," "),5)," ","other"))
如果你有问题,就问吧 ;)
编辑 :
对于正在改变的问题,我们将提供一些“通用”代码。
如果你想让所有的解决scheme排队,你可以使用这个:
=SUBSTITUTE(SUBSTITUTE(TRIM(SUBSTITUTE(IF([C_1],[E_1]&" "," ")&IF([C_2],[E_2]&" "," ")&...&IF([C_n],[E_n]," "),REPT(" ",[TC]),[NS]))," ",[ND]),[SR]," ")
-
[C_1]
,[C_2]
,…,[C_n]
:每个不同expression式的条件 -
[E_1]
,[E_2]
,…,[E_n]
:expression式本身 -
[TC]
:此公式中所有IF
的总数 -
[NS]
:表示如果没有解决scheme是真实的 -
[ND]
:你想要的新的分隔符 -
[SR]
:使用的“空间replace”
注意:对于此解决scheme,不能使用包含空格的expression式。 只要将它们replace为不像下划线那样的符号即可。 (像"Exp. 1"
"Exp._1"
这样的expression将是"Exp._1"
)这将通过[SR]
在末尾改回。
所以你的解决scheme看起来像这样:
=SUBSTITUTE(SUBSTITUTE(TRIM(SUBSTITUTE(IF(OR(I4=1,J4=1),"2G "," ")&IF(AND(Q4=1,V4=1),"3G "," ")&IF(AND(AC4=1,AG4=1),"4G"," "),REPT(" ",3),"other"))," ","/"),[SR]," ")
由于您的expression式不包含空格,因此可以跳过[SR]
部分:
=SUBSTITUTE(TRIM(SUBSTITUTE(IF(OR(I4=1,J4=1),"2G "," ")&IF(AND(Q4=1,V4=1),"3G "," ")&IF(AND(AC4=1,AG4=1),"4G"," "),REPT(" ",3),"other"))," ","/")
如果你还有什么问题,就问。
你有一个单独的If()
公式,所以一旦find第一个TRUE就会停止。 相反,只需连接它们:
=If(And(I4=1,J4=1),"2G","") & if(and(q4=1,v4=1),"3G","") & if(and(ac4=1,ag4=1),"4G","")
编辑:刚才意识到这可能会留下一个单元格,说“2G3G4G”,我认为是不是你想要的。 只需要添加一个逗号分隔符。
编辑2:根据你的评论,你可能想要这样的:
=If(Or(I4=1,J4=1),"2G","") & if(Or(q4=1,v4=1),"3G","") & if(Or(ac4=1,ag4=1),"4G","")
这将检查I4=J1
或 J4=1
。 如果其中任何一个是1
,它将返回“2G”。 与Q4
和V4
,如果其中任一个是1
,则返回“3G”。