在Excel中的IF函数 - 使用具有相同结果的多个函数(解释)?

时间:2015-09-23 23:25:38

标签: excel if-statement formula formulas

这就是我的困境: 我有颜色的列(红色,蓝色等)。对于每个都有0或1(如果项目中有蓝色则为1,否则为0)。但是项目中可以有2种(或10种)颜色。有没有办法在Excel中制定这个?

我尝试使用IF,但这限制了我的2个条件:如果红色是假的,那么它会变成蓝色,但我似乎找不到同时显示蓝色和红色的方式项目

例如: 我的裙子既绿色又有黄色。我有0为红色,0为蓝色,1为绿色,1为黄色。我只想在1列中浓缩,可以说:绿色,黄色(中间有逗号)。

帮助?

2 个答案:

答案 0 :(得分:0)

猜测是什么,即red在B1中,以下似乎适用于所提供的示例:

=LEFT(IF(B2=1,B$1&", ","")&IF(C2=1,C$1&", ","")&IF(D2=1,D$1&", ","")&IF(E2=1,E$1&", ",""),LEN(IF(B2=1,B$1&", ","")&IF(C2=1,C$1&", ","")&IF(D2=1,D$1&", ","")&IF(E2=1,E$1&", ",""))-2)  

(返回所有颜色标志为0的错误)。大部分都是剥离最后两个字符,所以最好使用辅助列和两个公式(但总体上要短得多)。

这部分:

=IF(B2=1,B$1&", ","")&IF(C2=1,C$1&", ","")&IF(D2=1,D$1&", ","")&IF(E2=1,E$1&", ","")  

可以通过进一步的IF语句进行扩展,以涵盖四种以上的颜色。

如果是R2中的后一个版本,那么最后两个字符(逗号空格)可能会被剥离:

=LEFT(R2,LEN(R2)-2)

答案 1 :(得分:0)

VBA版本(复制/粘贴到工作簿中的常规代码模块)

Function Colors(names, flags)
    Dim rv, i
    rv = ""
    For i = 1 To names.Cells.Count
     If flags(i) = 1 Then rv = rv & _
             IIf(Len(rv) > 0, ", ", "") & names(i)
    Next i
    Colors = rv
End Function

用法:

=Colors($B$1:$J$1,B2:J2)

假设您的颜色名称位于B1:J1且第一行1/0位于B2:J2