Excel,Vlookup / IF / else

时间:2018-05-19 13:33:59

标签: excel

我想做一个遵循以下逻辑的vlookup / if语句:

Input to col F : If A:A = a , b , c, d , e  then 'name' & col B:B, C:C, D:D else 'name2'

编辑:也许一个映射表可以帮助,我想要的逻辑是,在A2中,如果数据是a,b,c,d或e然后返回一个字符串+连接B2,C2,D2否则返回另一个字符串

示例数据,此处是我想要的输出。

+-------+----+----+----+------------+
| Stack | xx | yy | zz | Coolxxyyzz |
| Over  | aa | bb | cc | Coolxxyyzz |
| Flow  | dd | ee | ff | Coolxxyyzz |
| Super | gg | hh | ii | NotCool    |
| User  | ll | mm | nn | NotCool    |
+-------+----+----+----+------------+

条件是Stack,Over,Flow是我想要返回字符串并连接B:D的那些。如果它不是Stack,Over,Flow返回另一个字符串。

添加一些图片以显示错误:

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:1)

编辑#1:

此公式适用于给出的示例:

=IF(OR(A1="stack",A1="over",A1="flow"),"COOL"&B1&C1&D1&E1,"NOT COOL")

image

Google表格允许vlookup返回多个值

=ArrayFormula(VLOOKUP($A$14,$A$1:$G$9,{2,3,6,7},FALSE))

然而,excel没有这种内置功能,你必须将返回分解为单独的部分。我认为下面的公式给出了一个你想看到的例子:

=IFERROR("NAME"&VLOOKUP($F$6,$A$1:$E$14,2,FALSE)&VLOOKUP($F$6,$A$1:$E$14,3,FALSE)&VLOOKUP($F$6,$A$1:$E$14,4,FALSE)&VLOOKUP(F$6,$A$1:$E$14,5,FALSE),"NAME2")

image

image

答案 1 :(得分:1)

①硬编码示例公式:

=IF(OR(A1="Stack",A1="Over",A1="Flow"),"Cool"&B1&C1&D1,"NotCool")

=IF(SUMPRODUCT(--({"Stack","Over","Flow"}=A1))>0,"Cool"&B1&C1&D1,"NotCool")

=IF(SUMPRODUCT(--ISNUMBER(SEARCH({"Stack","Over","Flow"},A1)))>0,"Cool"&B1&C1&D1,"NotCool")

②查找表 - 比上述更容易维护,只在一个地方更改。

如果您需要查找表,而不是对数组{"Stack","Over","Flow"}进行硬编码,则可以创建动态命名范围。

  1. 将您的字词列表放在一个单独的列中,我们来自G1
  2. Ctrl + F3 打开名称管理器
  3. 添加新项目。姓名:includeTerms RefersTo:= OFFSET(Sheet1!$G$1,0,0,COUNTA(Sheet1!$G:$G),1)。当您在现有术语下方添加更多行时,此命名范围将自动扩展。无需编辑公式。
  4. 请参阅includeTerms代替数组{"Stack","Over","Flow"}
  5. Dynamic named range

    您可以将命名范围替换为上面的最后2个公式,甚至可以使用其他公式,例如:

    =IF(ISERROR(MATCH(A1,includeTerms,0)),"NotCool","Cool" &B1&C1&D1)
    
    =IF(ISERROR(VLOOKUP(A1,includeTerms,1,0)),"NotCool","Cool"&B1&C1&D1)
    

    表格中的这些例子

    *列F中显示的公式和列G中匹配的字词):

    Formulas in sheet

    注意:使用OR可能是未来维护的首选。