如何从一个excel列中查找值并在Col B中显示diff值?

时间:2017-03-24 20:33:28

标签: excel excel-formula excel-2010 excel-2016

   A                                        B (This is what I want)

Apple iPhone                                       Apple
Verizon Galaxy S6 (SM-G920F)                      Samsung
T-Mobile Galaxy S7 Edge (SM-G935F)                Samsung
Apple iPod Touch                                   Apple

即。如果列A包含“Galaxy”和“Apple”,如果列A包含单词“Apple”,则在B列中显示三星。

我想使用excel公式而不是VBA。有人可以帮忙吗?

4 个答案:

答案 0 :(得分:1)

创建要搜索的关键字表和预期结果:

enter image description here

然后使用这个公式:

=INDEX(E:E,AGGREGATE(15,6,ROW($D$2:$D$3)/(ISNUMBER(SEARCH($D$2:$D$3,A2))),1))

enter image description here

如果您不想要额外的表但想要对数组进行硬编码,那么您可以这样做:

=INDEX({"Apple","Samsung"},AGGREGATE(15,6,ROW($1:$2)/(ISNUMBER(SEARCH({"Apple";"Galaxy"},A2))),1))

enter image description here

答案 1 :(得分:1)

以下是您可以在B列中使用的公式:

=IF(IFERROR(FIND("Apple",A1) > 0,FALSE), "Apple", IF(IFERROR(FIND("Galaxy",A1)>0,FALSE),"Samsung",""))

以下是带有结果的示例数据:

enter image description here

如果该公式无法找到" Apple"或" Galaxy"在A栏的相应单元格中。

答案 2 :(得分:1)

请尝试以下方法:

=IFERROR(IF(SEARCH("Apple",A1)>0,"Apple"),"Samsung")

答案 3 :(得分:0)

你可以使用这样的公式:

=IF(ISNUMBER(SEARCH("Apple";A1));A1;"")