提取第 N 个方括号之间的字符串的公式

提取第 N 个方括号之间的字符串的公式

单元格 A1、A2、A3 等包含类似于以下内容的字符串...

1 x Product A [SG014] 1 x Product B [SG026] 1 x Product C [SG023]

A 列中的每个单元格可以是最多 20 种不同产品及其相关代码的字符串(例如 SG014 等)。

在 B 列中,我想要一个返回第一个代码的公式。在 C 列中,我想要一个返回第二个代码的公式……依此类推……

有人能告诉我怎么做吗?

答案1

文本解析可能非常复杂,因为有多个分隔符(例如 [ 和 ])。这可能是因为使用大量空格严重变形文本,然后提取所需内容并对其进行修复TRIM可能是最佳方法。

    严重变形的文本

B1 中的公式是,

=TRIM(MID(REPT(" ", 999)&SUBSTITUTE(SUBSTITUTE($A1, "[", REPT(" ", 999)), "]", REPT(" ", 999)), COLUMN(A:A)*1999, 999))

根据需要填写。如果您发现在出现问题之前可以提取的相关代码的限制,请回复;我很想知道。如果您确实发现它不足以处理大量文本返回,请提高999数量99995 个位置全部为或更高(9991999)。经过一些简单的数学计算,我得知 20 种产品应该是安全的。

答案2

如果所有产品代码都是 5 个字符(如您的示例),那么您可以在 B1 中使用此公式复制

=IFERROR(MID($A1,FIND("^",SUBSTITUTE($A1,"[","^",COLUMNS($B1:B1)))+1,5),"")

相关内容