在MS Excel中,我想使用公式从文本中仅包含特定字符(“=”)的单元格中提取单词。
A2:多莉让我自制=蛋糕和一些松饼
A3:我们吃了芝士=晚餐的蛋糕 A4:每个人都喜欢面包店制作一些很棒的蛋糕A5:约翰尼自己做晚餐=昨晚,然后清理了厨房
A6:有大量的raing State = Oklahoma
我希望列(A2:A4)中的以下内容在列(B2:B4)中提供以下结果。
B2:自制=蛋糕
B3:奶酪=蛋糕
B4:太棒了=蛋糕
B5:晚餐=昨晚
B6:州=俄克拉荷马州
我尝试了几种方法,有些方法比其他方法更接近,但如果可能的话,无法弄明白。
答案 0 :(得分:2)
使用旧的文本解析技巧,通过SUBSTITUTE和REPT functions大大增加重复零的单词之间的距离,从而提供更大的预定子串扫描。
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)