我需要在范围(随机/范围单元格)中找到部分文本 这是我的截图
黄色:我需要查找的内容(要查找的参数) 蓝色:我需要得到的东西
我已经组合尝试使用“修剪,搜索,查找”,但是由于它是一个范围并且要找到一个随机单元格,因此仍然失败。
需要您的帮助和建议:)
答案 0 :(得分:2)
其他解决方案假定您知道要查找的单元格。根据您的问题,听起来您只是想在该列中搜索所需内容。假定包含所有文本行的列为A列,则此方法对您来说应该有用。
系统正常运行时间的公式:
=TRIM(RIGHT(SUBSTITUTE(INDEX(A:A,MATCH("*"&"uptime is"&"*",A:A,0)),"uptime is",REPT(" ",9999)),9999))
系统映像文件的公式:
=TRIM(RIGHT(SUBSTITUTE(INDEX(A:A,MATCH("*"&"System image file is"&"*",A:A,0)),"System image file is",REPT(" ",9999)),9999))
请注意,您可以使用单元格引用替换字符串。例如,将uptime is
放在单元格Y1中,并将System image file is
放在单元格Y2中,然后可以在单元格Z1中使用此公式并复制下来:
=TRIM(RIGHT(SUBSTITUTE(INDEX(A:A,MATCH("*"&Y1&"*",A:A,0)),Y1,REPT(" ",9999)),9999))
答案 1 :(得分:1)
第一次尝试:
catch
第二次尝试:
=Clean(Trim(MID(A1,FIND("uptime is",A1)+10,LEN(A1)-FIND("uptime is",A1)+10)))
答案 2 :(得分:1)
您可以在正则表达式中使用函数
工作表中的UDF:
VBA:
React.cloneElement(xyz[0], [{...props}], kids)
正则表达式:
第一组是直到搜索词组的所有内容。第二是之后的一切。如果找到搜索字符串,则仅返回第二组中的位。
Option Explicit
Public Function GetStringAfter(rng As Range, ByVal findString As String) As Variant
Dim pattern As String, re As Object
If rng.Cells.Count > 1 Then
GetStringAfter = CVErr(xlErrNA)
Exit Function
End If
pattern = "(.*" & findString & ")(.*)"
Set re = CreateObject("vbscript.regexp")
With re
.Global = True
.MultiLine = True
.pattern = pattern
If .test(rng.Text) Then
GetStringAfter = Trim$(.Replace(rng.Text, "$2"))
Else
GetStringAfter = "Not found"
End If
End With
End Function
第一个捕获组(。*正常运行时间为)
(.*uptime is)(.*)
/
gm
匹配任何字符(行终止符除外)
.*
量词-尽可能在零到无限次之间进行匹配,并根据需要进行回馈(贪婪)
*
从字面上匹配字符uptime is
(区分大小写)
第二个捕获组(。*)
uptime is
匹配任何字符(行终止符除外)
.*
量词-尽可能在零到无限次之间进行匹配,并根据需要进行回馈(贪婪)