日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

如果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”。

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

分享到:
標簽:公式 字符串 提取 數值 Excel函數
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定