国产亚洲不卡一卡2卡三卡4卡网站_中文字乱码在线生成2021_yellow片高清_黄黄的高清无码网站_XXXX9999无码

大學(xué)校園網(wǎng)

大學(xué)生活網(wǎng) > 大學(xué)生學(xué)習(xí) > 財(cái)務(wù)會(huì)計(jì)

表格中包含一個(gè)混合文本和數(shù)字的字符串,先提取其中數(shù)字需用到什么辦法?

如果Excel單元格中包含一個(gè)混合文本和數(shù)字的字符串,要提取其中的數(shù)字,通常可以用下面的公式,例如字符串“隆平高科000998”在A1單元格中,在B1中輸入數(shù)組公式:

=MID(A1,MATCH(1,--ISNUMBER(--MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)),0),COUNT(--MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1)))

公式輸入完畢按Ctrl+Shift+Enter結(jié)束,公式返回文本形式的數(shù)值“000998”。下面的公式也可以提取字符串中的數(shù)值,并返回?cái)?shù)值形式:

=LOOKUP(9E+307,--MID(A1,MIN(FIND({0;1;2;3;4;5;6;7;8;9},A1&1234567890)),ROW(INDIRECT("1:"&LEN(A1)))))

公式返回“998”。

上述兩個(gè)公式適合于字符串中包含連續(xù)數(shù)字的情況。但有時(shí)字符串中可能包含多個(gè)被文本分隔的數(shù)字,如“世紀(jì)家園31棟3單元901室”中就包含了3個(gè)數(shù)值,用上面的第二個(gè)公式只能返回第一個(gè)數(shù)值“31”,而第一個(gè)公式不能得到正確的結(jié)果。要分別提取字符串中的各個(gè)數(shù)值,可以用下面的自定義函數(shù)。

在Excel中按Alt+F11,打開(kāi)VBA編輯器。單擊菜單“插入→模塊”,在代碼窗口中輸入下列代碼:

Function GetNums(rCell As Range, num As Integer) As String

Dim Arr1() As String, Arr2() As String

Dim chr As String, Str As String

Dim i As Integer, j As Integer

On Error GoTo line1

Str = rCell.Text

For i = 1 To Len(Str)

chr = Mid(Str, i, 1)

If (Asc(chr) < 48 Or Asc(chr) > 57) Then

Str = Replace(Str, chr, " ")

End If

Next

Arr1 = Split(Trim(Str))

ReDim Arr2(UBound(Arr1))

For i = 0 To UBound(Arr1)

If Arr1(i) <> "" Then

Arr2(j) = Arr1(i)

j = j + 1

End If

Next

GetNums = IIf(num <= j, Arr2(num - 1), "")

line1:

End Function

該自定義函數(shù)定義了兩個(gè)參數(shù),第一個(gè)參數(shù)指定字符串所在的單元格,第二個(gè)參數(shù)指定提取字符串中的第幾個(gè)數(shù)值。如果字符串中僅包含2個(gè)數(shù)值,而第二個(gè)參數(shù)大于2,則函數(shù)會(huì)返回空。

返回Excel工作表界面。假如上述字符串在A2單元格中,在B2中輸入:

=Getnums(A2,1)

公式將以文本形式返回字符串中的第一個(gè)數(shù)值。要得到字符串中的第N個(gè)數(shù)值,將公式中的第二個(gè)參數(shù)“1”替換為N即可,如下圖D2中的公式:

=Getnums(A2,3)

返回“901”。

說(shuō)明:該自定義函數(shù)在處理小數(shù)形式的數(shù)值時(shí),將小數(shù)點(diǎn)“.”也視為字符,因而對(duì)于小數(shù)可分別提取小數(shù)的整數(shù)部分和小數(shù)部分。