Excel从具有随机结构的单元格中提取精确的string

好吧,

在列A中,基本上每个单元格都有不同的组合,并且没有相同的string前后值我们正在提取。 例如:

ODODODODEFGH4OGOGOG

LALALALALABCDE12-1ALALALALA

IRIRIRIRIJKLMNOROROR

我需要从列A中提取位于另一个表单中的以下string((它是一个包含文本和可变长度的数字的SKU信息),并将其列在其旁边的列B中

ABCDE12-1

EFGH4

IJKLMN

我试过查找,中期,查找,索引function,但似乎无法find解决scheme。 任何帮助非常感谢!

假设你的Sheet1Sheet2看起来像这样。

在这里输入图像说明

将此公式放在Sheet1单元格B1 Sheet1并将其拉下。

=IF(SUMPRODUCT(COUNTIF(A1,"*"&Sheet2!$A$1:$A$3&"*")),INDEX(Sheet2!A:A,SUMPRODUCT(COUNTIF(A1,"*"&Sheet2!$A$1:$A$3&"*")*ROW(Sheet2!$A$1:$A$3))),"")

在这里输入图像说明

好,现在我们知道你有一个查询表,设置如下:

在某些表单上,在垂直命名范围中列出有效的SKU。 例如:ValidSKU是指:Sheet2!$ A $ 2:$ A $ 100

然后在A1中的一些表单上使用乱码string,从string中返回有效的SKU:

 B1: =INDEX(ValidSKU,LOOKUP(9E+307,FIND(ValidSKU,A1),ROW(INDIRECT("1:10000")))) 

上述公式中的“10000”参数需要至less与列表中的SKU数量一样大。 因此,如果您有5000个有效的SKU,请使用大于此值的数字。

然后根据需要填写。

这种方法有一个弱点:如果有重叠的SKU,它会返回最低的匹配。 所以最好将最长的SKU放在列表的最底部。

换句话说,如果你有两个SKU的ABCDE12-1和ABCDE12,这两个都在你的第二个string中find。 无论哪个位于ValidSKU列表中的最后一个将返回。 我不知道有什么方法来区分这两种可能性。