如何提取单元格字符串中的六位数字?

How to extract the six digit number in a cell string?

我有一列数据:

纽约真好,456983 美食
北京好棒678932,好文化
...等等

我想提取六位数字并将其放在原始列旁边的列中。

有n行。

没有 VBA 的情况下,有没有办法用公式来做到这一点?

如果没有 VBA,您可以使用以下 Excel 公式,假设 A1 是包含文本的单元格。

=MID(A1,FIND("------",SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"0","-"),"1","-"),"2","-"),"3","-"),"4","-"),"5","-"),"6","-"),"7","-"),"8","-"),"9","-")),6)

你可以使用这个,作为数组公式输入:

=MID(A2,MIN(IFERROR(FIND({0,1,2,3,4,5,6,7,8,9},A2),"")),SUMPRODUCT(--ISNUMBER(MID(A2,ROW($A:$A0),1)+0)))

这对我有用。这将查找字符串中的所有数字。 - 您当然可以添加限制。

Sub numberExtract()
    x = ActiveCell
    Dim valIs As String
    Dim a As String
    For i = 1 To Len(x)
        a = Mid(x, i, 1)
        If IsNumeric(a) Then
            valIs = valIs & a
        End If
    
    Next i
    MsgBox valIs
End Sub

此公式适用于您的两个示例:

=MID(A1,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&1234567890)),6)