簡體   English   中英

excel公式在文件路徑文本字符串中找到零件號

[英]excel formula find part number in file path text string

我提取了網絡驅動器上的所有文件,其中一些文件名是部件號,部件號格式為0000-000000-00 現在,在此文件的600,000多個路徑名中,我試圖找出如何從路徑名中提取零件號。 我認為一個mid公式可能會起作用,但是我對如何告訴它查找帶有#格式0000-000000-00的部件並從路徑中僅提取那14個字符的內容感到0000-000000-00

輸入看起來像這樣

c:\users\stuff\folder_name\1234-000001-01_ baskets_1.pdf
c:\users\stuff\folder_name\1234-000001-02_ baskets_2.pdf
c:\users\stuff\folder_name\1234-000001-03_ baskets_3.pdf
c:\users\stuff\folder_name\1234-000030-01_ tree_30.pdf
c:\users\stuff\folder_name\random text_1234-000030-02_ tree_30.pdf
c:\users\stuff\folder_name\more random stuff_1234-000030-02_ tree_30.pdf

我希望的輸出

1234-000001-01
1234-000001-02
1234-000001-03
1234-000030-01

既然您有可以利用的模式,請使用此模式:

=MID(A1,SEARCH("????-??????-??",A1),14)

查找模式的開頭,然后返回14個字符。

在此處輸入圖片說明

您需要一個公式,但也可以使用UDF來應用正則表達式以獲取模式(在這種情況下,有些過分了但值得注意):

Option Explicit
Public Sub GetCustomString()
    Dim i As Long, tests()
    tests = Array("c:\users\stuff\folder_name\1234-000001-01_ baskets_1.pdf", _
    "c:\users\stuff\folder_name\1234-000001-02_ baskets_2.pdf", _
    "c:\users\stuff\folder_name\1234-000001-03_ baskets_3.pdf", _
    "c:\users\stuff\folder_name\1234-000030-01_ tree_30.pdf", _
    "c:\users\stuff\folder_name\random text_1234-000030-02_ tree_30.pdf", _
    "c:\users\stuff\folder_name\more random stuff_1234-000030-02_ tree_30.pdf")

    For i = LBound(tests) To UBound(tests)
        Debug.Print GetString(tests(i))
    Next
End Sub

Public Function GetString(ByVal inputString As String) As String
    Dim arr() As String, i As Long, matches As Object, re As Object
    Set re = CreateObject("VBScript.RegExp")
    With re
        .Global = True
        .MultiLine = True
        .IgnoreCase = False
        .Pattern = "\d{4}-\d{6}-\d{2}"
        If .test(inputString) Then
            GetString = .Execute(inputString)(0)
        Else
            GetString = vbNullString
        End If
    End With
End Function

在工作表中使用UDF:

圖案


模式: \\d{4}-\\d{6}-\\d{2}

說明:

\\ d {4}匹配一個數字(等於[0-9])

{4}量詞-精確匹配4次

“-”與字符匹配-字面意義(區分大小寫)

\\ d {6}匹配一個數字(等於[0-9])

{6}量詞-精確匹配6次

“-”與字符匹配-字面意義(區分大小寫)

\\ d {2}匹配一個數字(等於[0-9])

{2}量詞-精確匹配2次

全局模式標志:g修飾符:全局。 所有匹配項(第一次匹配后不返回)m修飾符:多行。 使^和$匹配每行的開始/結束(不僅是字符串的開始/結束)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM