Excel公式 - 如果包含文本,结果文本

时间:2014-11-15 19:46:07

标签: excel excel-formula excel-2010

我有一个奇怪的Excel问题让我心烦意乱。基本上,这就是我所拥有的:

列A包含文本字符串,这些文本都包含公司名称和一堆其他信息。我想删除这些名字。我已经找到了我正在搜索的名单。

**Contractor**
CompanyA
CompanyB
CompanyC
CompanyD

和这样的字符串:

CompanyA REQ# G-FMR-036 PT 2
CompanyA Pad AN Structural Steel ()
COMPANYC REQ# 54
CompanyA REQ# G-FMR-049

我想要的是返回该字符串中出现的公司名称的公式。我的第一个想法是IF和SEARCH的嵌套公式,但我知道必须有更好的方法。

4 个答案:

答案 0 :(得分:2)

使用要在A1:A4中搜索的列表以及B1:B4中的公司名称列表,此array formula,使用 Ctrl Shift 输入即可:

=INDEX($B$1:$B$4,MATCH(TRUE,ISNUMBER(SEARCH($B$1:$B$4,A1)),0))

答案 1 :(得分:1)

有点像kludge但比嵌套的IF更好:

我正在解释你上面给出的例子(4家公司);你应该能够弄清楚如何扩展它。

在A栏中,您的字符串包含公司名称和额外内容。假设A1有一些列标题,你的4个字符串在A2,A3,A4,A5中。

在单元格C1,D1,E1,F1中有四个“干净”的公司名称。

在C2中有这个公式:

=IF(ISERROR(FIND(UPPER(C$1), UPPER($A2))),"",C$1)

然后将单元格C2复制到C2:F5中的所有单元格。公式将自动更新以适合每个单元格。

然后,在单元格H2中有这个公式:

=C2&D2&E2&F2

然后将其复制/粘贴到H3,H4,H5。

在H栏中,您将获得所需内容。

当然,这假设您在A列的每个单元格中只有一个匹配的公司名称,并且名称与单元格C1:F1中的公司名称完全相同(最大区分大小写)。

答案 2 :(得分:1)

我认为某些公司名称包含空格,否则您可以使用:

=left(a1,find(" ",a1)-1)

如果您需要将字符串的内容与公司列表进行比较,那么请使用命名范围中的列表" CompanyList&#34 ;;每行一个条目;你可以试试像:

=IFERROR(LOOKUP(2,1/ISNUMBER(SEARCH(CompanyList&"*",A1)),CompanyList),"Not in List")

但是,如果某些名称相似,则需要注意列表中的顺序,因为公式将返回匹配的最后一个条目。所以你想把最长的字符串放在公司列表中。

答案 3 :(得分:0)

这是我到目前为止创建的内容,虽然我认为必须有比嵌套公式更好的方法,比如哇。我的意思是,它有效,但它让我想哭。

=IF(ISNUMBER(SEARCH(T$3,B3)),"CompanyA",IF(ISNUMBER(SEARCH(T$4,B3)),"CompanyB",IF(ISNUMBER(SEARCH(T$5,B3)),"CompanyC",IF(ISNUMBER(SEARCH(T$6,B3)),"CompanyD","Other"))))