我如何检查列中的每个单元格以查看它是否包含来自另一列的单元格中的任何文本字符串?

时间:2016-02-24 15:57:52

标签: excel vba excel-2007

我正在使用Excel中的产品数据库,并寻求清理和均化制造商的参考方式。数据库大约有9k行,因此对手动编辑不友好。数据库中也缺少一些制造商名称 - 它并不完美。

每列的标题组织如下:

SKU(commercial product code)  |  Commercial Description  |  Manufacturer Name

行条目的示例是:

MCO20264  |  PAD,BURNISH,27 IN,PK5  |  3M Corp.

目标是编辑“制造商名称”列,以便每次提及制造商时,例如3M,无论是3M公司,3M公司,3M公司等,都使用同类产品名称,如3M,而不是多个名称。大约有500种不同的制造商名称。许多名称是通过多个名称引用的,但是当它们存在时,它们总是在文本字符串中包含其名称的缩写版本,就像3M总是出现在上面的列表中一样。

我已经有一些同质化的制造商名称。我所拥有的同类制造商名称位于单独的工作表的列中,并且由于有多少我希望引用该列中的单元格而不是在函数中包含每个名称的单个文本字符串。

我试图排除所有制造商列表中的任何行,其中制造商名称单元格在单元格中的任何位置包含同名文本字符串,例如3M,以便我可以只处理那些缺少可以引用它们的同类名称的名称。最终目标是完成同质制造商名称列表,并将其应用于数据库,以便每个制造商仅以一种方式引用。

我尝试了各种方法来包含

"*"A2"*"

在函数中键入表示法以解决此问题,但此处没有成功,包括此表示法。

有人知道如何解决我的问题吗?

1 个答案:

答案 0 :(得分:0)

你可以使用公式和SEARCH函数来完成它,就像

一样
=IFERROR(IF(SEARCH("3M",A1,1)>0,"3M",A1),A1)

您可以根据自己的需要进行修改。

例如,如果您在A1:A6中有数据,则以下数组公式将返回文本中3M所在的行

=SMALL(IF(IFERROR(SEARCH("3M",$A$1:$A$6,1)>0,0),ROW($A$1:$A$6)),ROWS($B$1:$B1))

如果我能进一步提供帮助,请告诉我。

编辑进一步的解决方案

如果您有A1中的数据:B4作为您的替换数据,那么在A中要替换的文本,在B中替换,所以3M公司在A中,3M在B.我的columnd to seach on是D,所以有各种各样的有3M公司,3M亚洲,松下公司,松下有限公司,然后在EI有以下公式

=INDEX($B$2:$B$4,MAX(IF(ISERROR(FIND($A$2:$A$4,D2)),-1,ROW($A$2:$A$4)-1)),1) 希望这可以帮助。