从包含子字符串中的特定字符的字符串中提取Word

时间:2015-09-17 14:25:10

标签: string excel excel-formula text-extraction

在MS Excel中,我想使用公式从文本中仅包含特定字符(“=”)的单元格中提取单词。

A2:多莉让我自制=蛋糕和一些松饼

A3:我们吃了芝士=晚餐的蛋糕

A4:每个人都喜欢面包店制作一些很棒的蛋糕

A5:约翰尼自己做晚餐=昨晚,然后清理了厨房

A6:有大量的raing State = Oklahoma

我希望列(A2:A4)中的以下内容在列(B2:B4)中提供以下结果。

B2:自制=蛋糕

B3:奶酪=蛋糕

B4:太棒了=蛋糕

B5:晚餐=昨晚

B6:州=俄克拉荷马州

我尝试了几种方法,有些方法比其他方法更接近,但如果可能的话,无法弄明白。

2 个答案:

答案 0 :(得分:2)

使用旧的文本解析技巧,通过SUBSTITUTEREPT functions大大增加重复零的单词之间的距离,从而提供更大的预定子串扫描。

Parse Substring with SUBSTITUTE and REPT

B2中的公式是,

=TRIM(MID(SUBSTITUTE(A2, " ", REPT(" ", 99)), MAX(1, FIND("=", SUBSTITUTE(A2, " ", REPT(" ", 99)))-50), 99))

TRIM function(用作包装器)删除前导和尾随空格。

答案 1 :(得分:0)

我使用了5个辅助列来完成此操作;它们可以折叠成一个很长的论坛,但我更喜欢这种方式(更容易找到我认为的任何错误的来源)。给出A2中的字符串;在B2中,它找到" ="的位置。

=SEARCH("=",A2)  

在C2中,它找到"的实例编号。 "在" ="之前

=B2-LEN(SUBSTITUTE(MID(A2,1,B2)," ",""))  

在D2中,它记录了该位置的位置。 "

=SEARCH(CHAR(33),SUBSTITUTE(A2," ",CHAR(33),C2))  

在E2中找到" "尾随" =",或者如果" ="它出现在单元格的最后一个单词中,它注意到完整的单元格长度+1

=IFERROR(SEARCH(" ",A2,B2),LEN(A2)+1)  

在F2中使用这些值会从前面的"中拉出字符串。 "落后" "

=MID(A2,D2+1,E2-D2-1)