我想做一个遵循以下逻辑的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返回另一个字符串。
添加一些图片以显示错误:
答案 0 :(得分:1)
编辑#1:
此公式适用于给出的示例:
=IF(OR(A1="stack",A1="over",A1="flow"),"COOL"&B1&C1&D1&E1,"NOT COOL")
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")
答案 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"}
进行硬编码,则可以创建动态命名范围。
G1
。includeTerms
RefersTo:= OFFSET(Sheet1!$G$1,0,0,COUNTA(Sheet1!$G:$G),1)
。当您在现有术语下方添加更多行时,此命名范围将自动扩展。无需编辑公式。includeTerms
代替数组{"Stack","Over","Flow"}
。您可以将命名范围替换为上面的最后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
中匹配的字词):
注意:使用OR可能是未来维护的首选。