2021国产精品_九色激情网_最污网站_亚洲成人福利在线观看_看黄在线观看_在线亚洲播放

大學校園網

大學生活網 > 大學生學習 > 財務會計

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

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

=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結束,公式返回文本形式的數值“000998”。下面的公式也可以提取字符串中的數值,并返回數值形式:

=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”。

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

在Excel中按Alt+F11,打開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

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

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

=Getnums(A2,1)

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

=Getnums(A2,3)

返回“901”。

說明:該自定義函數在處理小數形式的數值時,將小數點“.”也視為字符,因而對于小數可分別提取小數的整數部分和小數部分。

主站蜘蛛池模板: 日本久久网 | 九九九久久 | 日日干夜夜爽 | 伊人欧美 | av在线短片 | h片在线观看视频免费免费 日韩国产一区二区 | 国产99久久精品一区二区永久免费 | 免费的黄色网址 | 91成人网在线播放 | 精品美女久久久 | 天堂网亚洲 | 国产精品一区二区三区在线免费观看 | 成人网址在线观看 | 日本视频在线观看 | 精品亚洲一区二区三区 | 成人自拍偷拍 | 亚洲在线一区二区 | 欧州一区二区 | 精品久久久影院 | 亚洲香蕉在线观看 | 精品成人一区二区 | 一区二区视频在线观看 | av在线一区二区三区 | 久久欧美| 69视频在线播放 | 亚洲精品在线视频 | 污视频网站入口 | 夜夜春精品视频高清69式 | 一本在线 | 亚洲视频区 | 日韩不卡免费视频 | 欧美日韩在线一区 | 久久久久综合 | 亚洲免费精品 | 国产精品免费在线播放 | av在线天堂 | 国产精品一区二 | 天天干夜夜拍 | 一区在线观看 | 国产精品高潮呻吟久久av黑人 | 久久国产精品久久 |