我只想从文本中包含特定字符(“=”)的单元格中提取单词。
A2: Dolly made me a homemade=cake and some muffins
A3: we had cheese=cake for dinner
A4: Everyone loves how the bakery makes some awesome=cakes
我希望列 (A2:A4) 中的以下内容在列 (B2:B4) 中提供以下结果。
B2: homemade=cake
B3: cheese=cake
B4: awesome=cakes
我已尝试使用工作表函数实现以下解决方案。
A2: Johnny made his own dinner=lastnight and then cleaned the kitchen
=TRIM(TRIM(IFERROR(RIGHT(SUBSTITUTE(LEFT(A2,SEARCH(" ",A2&" ",SEARCH("=",A2))-1)," ",REPT(" ",LEN(A2))),LEN(C246)),""))),""),
如您所见,此公式不起作用,因为它仅提取(“=”)符号右侧的数据,结果如下。而我正在寻找一种解决方案,可以提取(“=”)符号所在的整个单词(右侧和左侧)。
答案1
尝试以下操作乌驅動德已定义F涂油礼(UDF)
Public Function Equals(inpt As String) As String
Equals = ""
ary = Split(Application.WorksheetFunction.Trim(inpt), " ")
For Each a In ary
If InStr(1, a, "=") > 0 Then
Equals = a
Exit Function
End If
Next a
End Function
用户定义函数 (UDF) 非常容易安装和使用:
- ALT-F11 打开 VBE 窗口
- ALT-I ALT-M 打开新模块
- 粘贴内容并关闭 VBE 窗口
如果您保存工作簿,UDF 将随之保存。如果您使用的是 2003 之后的 Excel 版本,则必须将文件保存为 .xlsm 而不是 .xlsx
要删除 UDF:
- 调出如上所示的 VBE 窗口
- 清除代码
- 关闭 VBE 窗口
要从 Excel 使用 UDF:
=等于(A1)
要了解有关宏的更多信息,请参阅:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
和
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
有关 UDF 的详细信息,请参阅:
http://www.cpearson.com/excel/WritingFunctionsInVBA.aspx
必须启用宏才能使其工作!
编辑#1:
无需任何操作即可完成虚拟专用网络,使用相同的方法。数据A1, 在C1进入:
=TRIM(MID(SUBSTITUTE($A1," ",REPT(" ",999)),COLUMNS($A:A)*999-998,999))
并复制。然后在B1进入:
=INDEX(C1:IV1,MATCH("*=*",C1:IV1,0))
答案2
Excel 有许多文本函数可帮助您从另一个文本字符串中提取单词或文本。使用哪个函数或函数组合取决于您的情况。示例:假设单元格 A1 包含文本字符串:“创造力需要勇气放弃确定性”
1. 要获取字符串的前 5 个字符,我们使用 LEFT 函数:=LEFT(A1,5) 结果是“Creat” 2. 要获取字符串的最后 11 个字符,我们使用 RIGHT 函数:=RIGHT(A1,11) 结果是“certainties” 3. 要从位置 10 开始的字符串中获取 7 个字符,我们使用 MID 函数:=MID(A1,10,7) 结果是“y requi”。 4.为了获取字符串的第一个单词,我们使用 LEFT 和 FIND 函数:=LEFT(A1,(FIND(” “,A1)-1)) 结果是“Creativity”。 - 更多信息请访问:http://www.exceldigest.com/myblog/2009/02/01/how-to-extract-text-from-another-text-string/#sthash.yNDHU7Xe.dpuf