如果单元格包含某些文本,则将指定的文本放在其他单元格中

时间:2015-01-12 09:39:58

标签: excel

Sheet1 中,我有一个很大的不同链接,看起来像这样:

A,B
http://www.shop.com/suppliers.html   
http://www.forum.com/phpBB2/viewtopic.php?t=6283&start=
http://www.wikipedia.org
http://www.website.com

我想快速定义这是什么类型的网站,例如:

  • 在A1中,URL包含“供应商”,我希望B1为“供应商”
  • 在A2中,URL包含“viewtopic”,我希望B2成为“论坛”
  • 在A3中,URL包含“wiki”,我希望B3成为“信息”
  • 在A4中,URL不包含任何有用的内容(未在Sheet2中定义),我希望B4为“Not 发现“

所有网址都有数以千计的“规则”,这些列表会不断增长。

因此,最好的解决方案是在 Sheet2 中包含所有“规则”。其中A列对应于*contains*,B列对应于所需的输出。

A           B
suppliers   Suppliers
providers   Suppliers
/forum/     Forum
viewtopic   Forum
Trad.aspx   Forum
wiki        Information

所以,最后我希望 Sheet1 像这样:

A                                                         B
http://www.shop.com/suppliers.html                        Suppliers
http://www.forum.com/phpBB2/viewtopic.php?t=6283&start=   Forum
http://www.wikipedia.org                                  Information
http://www.website.com                                    Not found

任何人都可以提供帮助吗?

2 个答案:

答案 0 :(得分:1)

在下面的示例中,我将查找表和值放在单个工作表上以供演示。

Index Lookup

B2中的公式是,

=IFERROR(INDEX($AB$2:$AB$99, MIN(INDEX(ROW($1:$98)+(ISERROR(SEARCH(AA$2:AA$99, A2))+NOT(LEN(AA$2:AA$99)))*1E+99, , ))), "")

根据需要填写。在为您自己的目的进行转录时,请记住所有范围都具有相同的行数,尽管它们不必是相同的行。 AA2:A99,AB2:AB99和Row(1:98)都有98行。

答案 1 :(得分:1)

我建立了一张与你相等的桌子;将表格命名为Types,并输入了containsoutput

的列标题

Types Table

然后您可以使用此公式:

=IFERROR(LOOKUP(2,1/ISNUMBER(SEARCH(Types[Contains],A1)),Types[Output]),"Not Found")

enter image description here

如果您选择不使用该表,则可以使用绝对范围引用替换表引用

eg:  Types[Contains]:=  Sheet2!$A$2:$A$6

但是,在您的情况下,表结构的一个优点是结构化引用会在您添加等效项时自动扩展。