公式或VBA - 查找字符串及其后的特定数量的字符

时间:2017-10-16 14:32:28

标签: excel vba formulas

我一直在使用

=if(isnumber(search("MyString",A1,1)),"MyString","Not Found")

看看" MyString"存在于具有长描述的单元格中。通常" MyString"后跟一个数字(改变),比如" MyString#"。

然而," MyString"它的数字并不总是存在于描述的同一位置:

A2 = "MyString# is great today."
A3 = "Today is a great day for MyString# to be in Excel."

有没有办法可以搜索MyString,然后打印它以及它后面的数字? (我可能会过度思考或忽略一些简单的事情!)

谢谢!

1 个答案:

答案 0 :(得分:1)

=IFERROR(MID(A1,SEARCH("MyString",A1),LEN("MyString")+1),"Not Found")

如果您只想显示数字,请执行以下操作:

=IFERROR(MID(A1,SEARCH("MyString",A1)+LEN("MyString"),1),"Not Found")

注意:我假设“MyString”之后的数字总是1位数。

如果MyString#之后的数据始终为空白,则无论使用下面的公式多少位数,都可以得到该数字。

=IFERROR(MID(A1,SEARCH("MyString",A1),SEARCH(" ",A1,SEARCH("MyString",A1))-SEARCH("MyString",A1)),"Not Found")

仅限数字:

=IFERROR(MID(A1,SEARCH("MyString",A1)+LEN("MyString"),SEARCH(" ",A1,SEARCH("MyString",A1))-SEARCH("MyString",A1)-LEN("MyString")),"Not Found")