从子字符串中包含特定字符的字符串中提取单词
Extract a Word from String Containing a Specific Character within Substring
在 MS Excel 中,我想使用公式仅从文本中包含特定字符(“=”)的单元格中提取单词。
A2:多莉给我做了一个自制的=蛋糕和一些松饼
A3:我们晚餐吃了奶酪=蛋糕
A4:每个人都喜欢这家面包店制作的美味=蛋糕
A5:约翰尼昨晚自己做了晚餐,然后打扫了厨房
A6:下了大雨 State=Oklahoma
我希望 (A2:A4) 列中的以下内容在 (B2:B4) 列中提供以下结果。
B2:自制=蛋糕
B3:奶酪=蛋糕
B4:棒极了=蛋糕
B5:晚餐=昨晚
B6:州=俄克拉何马州
我已经尝试了几种方法,有些方法比其他方法更接近,但如果可能的话,还是无法弄清楚。
我使用了 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)
使用旧的文本解析技巧,通过 SUBSTITUTE and REPT functions 大大增加带有重复零的单词之间的距离,从而可以更大程度地滑动预期的子字符串。
B2中的公式为,
=TRIM(MID(SUBSTITUTE(A2, " ", REPT(" ", 99)), MAX(1, FIND("=", SUBSTITUTE(A2, " ", REPT(" ", 99)))-50), 99))
TRIM function(用作包装器)删除前导和尾随空格。
在 MS Excel 中,我想使用公式仅从文本中包含特定字符(“=”)的单元格中提取单词。
A2:多莉给我做了一个自制的=蛋糕和一些松饼
A3:我们晚餐吃了奶酪=蛋糕
A4:每个人都喜欢这家面包店制作的美味=蛋糕
A5:约翰尼昨晚自己做了晚餐,然后打扫了厨房
A6:下了大雨 State=Oklahoma
我希望 (A2:A4) 列中的以下内容在 (B2:B4) 列中提供以下结果。
B2:自制=蛋糕
B3:奶酪=蛋糕
B4:棒极了=蛋糕
B5:晚餐=昨晚
B6:州=俄克拉何马州
我已经尝试了几种方法,有些方法比其他方法更接近,但如果可能的话,还是无法弄清楚。
我使用了 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)
使用旧的文本解析技巧,通过 SUBSTITUTE and REPT functions 大大增加带有重复零的单词之间的距离,从而可以更大程度地滑动预期的子字符串。
B2中的公式为,
=TRIM(MID(SUBSTITUTE(A2, " ", REPT(" ", 99)), MAX(1, FIND("=", SUBSTITUTE(A2, " ", REPT(" ", 99)))-50), 99))
TRIM function(用作包装器)删除前导和尾随空格。