解析excel中的url字符串

解析excel中的url字符串,excel,formula,Excel,Formula,我想在Excel中解析url字符串中的数字,并使用公式将其粘贴到另一个单元格中。例如,我有。我想用一个公式把‘668’取出,放在一个相邻的单元格里。有什么办法吗?如果你总是想要第一组数字,并且两边总是有一个=符号和&,那么这就行了: =LEFT(MID(A1,SEARCH("id=",A1)+3,15),SEARCH("&",MID(A1,SEARCH("id=",A1)+3,15))-1) =MID(A1,SEARCH("=",A1)+1,SEARCH("&",A1)-SEA

我想在Excel中解析url字符串中的数字,并使用公式将其粘贴到另一个单元格中。例如,我有。我想用一个公式把‘668’取出,放在一个相邻的单元格里。有什么办法吗?

如果你总是想要第一组数字,并且两边总是有一个
=
符号和
&
,那么这就行了:

=LEFT(MID(A1,SEARCH("id=",A1)+3,15),SEARCH("&",MID(A1,SEARCH("id=",A1)+3,15))-1)
=MID(A1,SEARCH("=",A1)+1,SEARCH("&",A1)-SEARCH("=",A1)-1)
否则,这里有一个UDF可以工作。您可以将其粘贴到Visual Basic编辑器的常规模块中
Alt+F11
,并像使用任何其他公式一样使用它:

Option Explicit

Public Function FindFirstSetOfNumbers(MyRange As Range) As String

Dim NumCounter As Integer
Dim Start As Integer

Start = Application.Evaluate("=MIN(FIND({0,1,2,3,4,5,6,7,8,9}," & MyRange.Address & "&""0123456789""))")

For NumCounter = Start To Len(MyRange)
    If IsNumeric(Mid(MyRange, NumCounter, 1)) Then
        FindFirstSetOfNumbers = FindFirstSetOfNumbers & Mid(MyRange, NumCounter, 1)
    Else
        Exit For
    End If
Next NumCounter

End Function

只需在任意单元格中键入
=FindFirstSetOfNumbers(YourRange)
,然后按
enter
,或
=VALUE(FindFirstSetOfNumbers(YourRange))
将其转换为数字数据类型。

如果您总是想要第一组数字,并且两边总是有一个
=
符号和一个
&
,则这将起作用:

=MID(A1,SEARCH("=",A1)+1,SEARCH("&",A1)-SEARCH("=",A1)-1)
否则,这里有一个UDF可以工作。您可以将其粘贴到Visual Basic编辑器的常规模块中
Alt+F11
,并像使用任何其他公式一样使用它:

Option Explicit

Public Function FindFirstSetOfNumbers(MyRange As Range) As String

Dim NumCounter As Integer
Dim Start As Integer

Start = Application.Evaluate("=MIN(FIND({0,1,2,3,4,5,6,7,8,9}," & MyRange.Address & "&""0123456789""))")

For NumCounter = Start To Len(MyRange)
    If IsNumeric(Mid(MyRange, NumCounter, 1)) Then
        FindFirstSetOfNumbers = FindFirstSetOfNumbers & Mid(MyRange, NumCounter, 1)
    Else
        Exit For
    End If
Next NumCounter

End Function
只需在任意单元格中键入
=findfirstsetownumbers(YourRange)
,然后按
回车
,或
=VALUE(findfirstsetownumbers(YourRange))
将其转换为数字数据类型