查找范围内的部分文本

时间:2018-11-02 11:15:11

标签: excel

我需要在范围(随机/范围单元格)中找到部分文本 这是我的截图

enter image description here

黄色:我需要查找的内容(要查找的参数) 蓝色:我需要得到的东西

我已经组合尝试使用“修剪,搜索,查找”,但是由于它是一个范围并且要找到一个随机单元格,因此仍然失败。

需要您的帮助和建议:)

3 个答案:

答案 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)

正则表达式:

Try it

第一组是直到搜索词组的所有内容。第二是之后的一切。如果找到搜索字符串,则仅返回第二组中的位。

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匹配任何字符(行终止符除外)

.*量词-尽可能在零到无限次之间进行匹配,并根据需要进行回馈(贪婪)