日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

从字母数字字符串中提取数字

發布時間:2024/4/17 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 从字母数字字符串中提取数字 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://office.microsoft.com/zh-cn/excel-help/HA001154901.aspx

本文的作者是 Ashish Mathur,是一位 Microsoft MVP(最有價值專家)。有關詳細信息,請訪問 Microsoft MVP 網站(英文)。

在下文中,我將說明從以下各種情況中的字符串內提取數字的公式:

  • 當字母字符和數字字符連在一起時,如 abc123 或 678sfr。
  • 當字母字符和數字字符沒有連在一起時,如 abc15tni。

問題

如何提取字母數字字符串的數字部分。例如:如果單元格 A1 包含的是字符串“abc123”,則將值 123 返回單元格 B1 中。

解決方案

此解決方案的基本原理是搜索并返回字母數字字符串中的第一個數字,然后只返回其后的數字。

算法

此解決方案包括創建公式以完成下列任務:

  • 將字母數字字符串分解為單獨的字符。
  • 確定分解后的字符串中是否有數字。
  • 確定數字在字母數字字符串中的位置。
  • 計算字母數字字符串中數字的數量。
  • 我們將分別考慮這些任務,然后將各公式整合在一起以得到最終結果。

    將字母數字字符串分解為單獨的字符

    請在此使用 MID 函數。MID 可以根據所指定的字符的數量,從所指定的位置開始,從文本字符串中返回特定數量的字符。此函數的語法是:

    MID(text,start_num,num_chars)

    • Text??? 文本字符串包含的是要提取的字符。
    • Start_num??? 要從文本中提取的第一個字符串的位置。文本中第一個字符占據 start_num 1,以此類推。
    • Num_chars??? 指定要 MID 從文本中返回的字符數量。

    對于我們的示例,公式為:

    =MID(A1,ROW($1:$9),1)

    此公式可以分解字母數字字符串,并且實際上會將字符置于工作表的不同行內。例如,對于字母數字字符串 abc123,其所有 6 個字符都將被分開。

    注釋 ? 可將數值 9 適當增大為任何更大的數值,以適應更長的字符串。在此示例中,最大字符串長度為 9。

    值得一提的是,字符串分解之后,“1”、“2”和“3”將被看作文本而不是數字。要將存儲為文本的數字轉換成數字,請用 1 乘以此公式,例如:

    =1*MID(A1,ROW($1:$9),1)

    確定分解后的字符串中是否有數字

    在此我們將使用 ISNUMBER 函數,此函數可以確定字母數字字符串中是否有數字。公式現在變成了:

    =ISNUMBER(1*MID(A1,ROW($1:$9),1))

    如果字符串中有數字,則結果將為 TRUE,否則結果將為 FALSE。

    確定數字在字母數字字符串中的位置

    現在我們將通過在上一段中提到的分解后的字符串的結果中查找 TRUE 值來確定數字的位置。在此我們將使用 MATCH 函數。經過修改的公式現在變為:

    =MATCH(TRUE,ISNUMBER(1*MID(A1,ROW($1:$9),1)),0)

    要點 ? 必須通過按 Ctrl+Shift+Enter 將此公式作為數組進行輸入。

    如果字符串是 abc123,則此公式產生的結果將是 4,這就是字母數字字符串中第一個數字字符的位置。

    計算字母數字字符串中數字的數量

    現在的任務是計算字符串中數字的數量,以確定返回字母數字字符串中第一個數字之后要返回的字符。

    如上所述,可通過用 1 與其相乘,將字母數字字符串中存儲為文本的數字轉換成數字。例如, =1*MID(A1,ROW($1:$9),1)

    將存儲為文本的數字轉換成數字之后,可以通過使用 COUNT 函數對其進行計數。可通過輸入以下公式計算數字的數量:

    =COUNT(1*MID(A1,ROW($1:$9),1))

    整合各公式

    現在我們將使用 MID 函數把此公式的各部分整合在一起,如以下示例所示。

    =MID(A1,MATCH(TRUE,ISNUMBER(1*MID(A1,ROW($1:$9),1)),0),COUNT(1*MID(A1,ROW($1:$9),1)))

    從本質上說,此問題可陳述為:確定第一個數字在字母數字字符串(在單元格 A1 中)中的位置。返回此數字及其后的數字。

    要將得到的字符轉換成數字,請用 1 乘此公式。雖然對此并不嚴格要求,但如果要對結果執行數學運算,則應該如此操作。下面是要輸入單元格 B1 中的最終公式:

    =1*MID(A1,MATCH(TRUE,ISNUMBER(1*MID(A1,ROW($1:$9),1)),0),COUNT(1*MID(A1,ROW($1:$9),1)))

    要點 ? 必須通過按 Ctrl+Shift+Enter 將這些公式作為數組進行輸入。

    更多示例

    要進一步測試此公式,請將下圖中的數據輸入空工作表中的單元格 A1:A7 中。

    將此公式輸入單元格 B1 中,然后使用自動填充將此公式復制到單元格 B2:B7 中。(不要忘記按 Ctrl+Shift+Enter。)

    在此值得一提的是,如果字符串是 yur09875reew,而且您使用的是已乘 1 的公式,則列 B 中的結果將是 9875 而不是 09875。因為 0*1=0,所以 0 被忽略了,返回的結果是 9875。如果想得到結果 09875,則不要用 1 乘以整個公式。

    ?

    ?

    ?

    =-===========================

    excel,index和match函數

    http://zhidao.baidu.com/link?url=Xh98mraINFP6_OCjmONSmnW6CYRUFwtTJkypRaZ-xX3ppKQZTduuvIZ3J237MY2VTDOYxBdEHK0L1X2OWb5u4GMkV4jQO-ZKYGb3h3QBZxW

    ?

    MATCH(要查找的內容,查找的區域,精確查找或近似查找)
    這個函數可以返回要查找的內容在查找區域中的位置,參數0為精確查找,參1為近似查找

    =MATCH(B7,A2:A4,0)?? 按圖中得出的值應為2
    意思就是在A2至A4單元格區域中精確查找與B7單元格內容相同的單元格在這列區域中是第幾個
    =MATCH(A7,B1:D1,0)?? 按圖中得出的值應為3
    意思就是在B1至D1單元格區域中精確查找與A7單元格內容相同的單元格在這行區域中是第幾個

    INDEX(待返回值所在的單元格區域,第某行,第某列)
    這個函數可以返回在指定區域中第某行第某列所在的單元格內容


    =INDEX(B2:D4,2,3)?? 按圖中得出的值應為D3單元格內容即40
    在B2單元格至D4單元格中的第二行就是表格中的第三行,第三列就是D列,所以值為D3

    如,取A列單元格區域中第5行的值,則公式為
    =INDEX(A:A,5)??? 即返回A5單元格內容

    如取第二行單元格中第10列的值,公式為
    =INDEX(2:2,10)??? 即返回J2單元格內容

    如在A列至G列行數為1至100行的單元格區域中找第23行,第4列單元格的內容,則公式為
    =INDEX(A1:G100,23,4)?? 即返回D23單元格的內容

    $是絕對引用符號

    A1相對引用
    $A1絕對引用列
    A$1絕對引用行
    $A$1絕對引用行和列
    $在誰的前面就絕對引用誰
    F4是在四種引用間相互轉換的快捷鍵(在編輯欄輸入公式時按下F4功能鍵可進行切換)

    相對引用、絕對引用和混合引用是指在公式中使用單元格或單元格區域的地址時,當將公式向旁邊復制時,地址是如何變化的。
    具體情況舉例說明:
    ????? 1、相對引用,復制公式時地址跟著發生變化,如C1單元格有公式:=A1+B1
    當將公式復制到C2單元格時變為:=A2+B2
    當將公式復制到D1單元格時變為:=B1+C1
    ????? 2、絕對引用,復制公式時地址不會跟著發生變化,如C1單元格有公式:=$A$1+$B$1
    當將公式復制到C2單元格時仍為:=$A$1+$B$1
    當將公式復制到D1單元格時仍為:=$A$1+$B$1
    ?????? 3、混合引用,復制公式時地址的部分內容跟著發生變化,如C1單元格有公式:=$A1+B$1
    當將公式復制到C2單元格時變為:=$A2+B$1
    當將公式復制到D1單元格時變為:=$A1+C$1
    ?????? 規律:加上了絕對地址符“$”的列標和行號為絕對地址,在公式向旁邊復制時不會發生變化,沒有加上絕對地址符號的列標和行號為相對地址,在公式向旁邊復制時會跟著發生變化。混合引用時部分地址發生變化。
    http://office.microsoft.com/zh-cn/excel-help/HP010342940.aspx?CTT=1
    http://office.microsoft.com/zh-cn/mac-excel-help/HA102928059.aspx?CTT=1

    如果你要用VLOOKUP函數,則公式可以寫成
    =VLOOKUP(A7,A$2:$D$4,MATCH(B7,B$1:D$1,)+1,)

    =VLOOKUP(A7,A$2:$D$4,MATCH(B7,A$1:D$1,),)

    ?

    ?

    ==============

    在相對引用、絕對引用和混合引用間切換

    全部顯示 全部隱藏

    默認情況下,單元格引用是相對 (相對引用:在公式中,基于包含公式的單元格與被引用的單元格之間的相對位置的單元格地址。如果復制公式,相對引用將自動調整。相對引用采用 A1 樣式。)的。例如,當您引用單元格 A2 到單元格 C2,實際上引用的是左邊的兩列(C 減去 A)和同一行 (2) 中的單元格。包含相對單元格引用的公式會因為您將它從一個單元格復制到另一個而發生改變。例如,如果您將單元格 C2 中公式“=A2+B2”復制到 D2,D2 中的公式將向下調整一行成為“=A3+B3”。如果希望在復制時保留此示例中的原始單元格引用,需要在列(A 和 B)和行 (2) 之前加上美元符號 ($) 來使單元格引用變為絕對 (絕對單元格引用:公式中單元格的精確地址,與包含公式的單元格的位置無關。絕對引用采用的形式為 $A$1。)。然后,當您從 C2 復制公式 (=$A$2+$B$2) 到 D2,該公式仍然是完全相同。

    在不頻繁的情況下,您可能希望使單元格引用變為“混合”,在前面的列值或行值之前加美元符號以“鎖定”列或行(例如,$A2 或 B$3)。若要更改單元格引用的類型:

  • 選擇包含公式的單元格。
  • 在編輯欄 編輯欄:位于 Excel 窗口頂部的條形區域,用于輸入或編輯單元格或圖表中的值或公式。編輯欄中顯示了存儲于活動單元格中的常量值或公式。 中,選擇要更改的引用。
  • 按 F4 在引用類型之間切換。
  • 下表總結了當將包含引用的公式向下和向右復制兩個單元格時引用類型的更新方式。

    對于正在復制的公式:如果引用是:它會更改為:
    $A$1(絕對列和絕對行)$A$1(引用是絕對的)
    ?A$1(相對列和絕對行)C$1(引用是混合型)
    ?$A1(絕對列和相對行)$A3(引用是混合型)
    ?A1(相對列和相對行)C3(引用是相對的)

    ?

    ==============

    http://www.111cn.net/office/excel/50362.htm

    LEN(A2) – LEN(SUBSTITUTE(A2, ” “, “”) 獲取字符串中空格的個數
    SUBSTITUTE(A2, ” “, “-”, step1) 將最后一個空格替換為”-”
    FIND(“-”, step2) 找到最后一個空格的位置
    RIGHT(A2, LEN(A2) – step3) 返回最后一個空格之后的字符串
    IF(ISERROR(FIND(” “, A2)), A2, step4) 字符串中沒有空格時不做處理,避免出現#VALUE!的結果


    利用上面的函數我們來看一個查找字符串中*星號位置并取出

    所以,要想查找字符串中的,*星號和?問號,必須在其前面加上這樣的一個符號 ~ 方能找到。


    上表中,每個單元格都包含兩個*星號,同時還包含三組數字,但是,每組數字的長度都不一樣,有的長有的短。現在的問題是,如何把每個單元格中被*星號隔開的每數字分別取出來?

    一、問題的分析

      要想取出被兩個*星號隔開的三組數字,關鍵的問題在于,如何知道并獲取兩個*星號分別處于字符串中的哪個位置。
      知道兩個*星號的位置后,我們就可以使用截取函數將三組數字分別取出來。

    二、獲取兩個*星號的位置
      獲取某個字符在字符串中所處的位置,可以使用SEARCH和SEARCHB函數來查找位置。
      兩個函數的語法相同,如下:
      SEARCH(find_text,within_text,start_num)
      SEARCHB(find_text,within_text,start_num)
      不過,兩個函數的區別在于,前者在查找的時候,把一個漢字的長度當作一個字符,后者則是以字節的方式來查找,一個漢字當兩個字節,所以,一個漢字的長度就為2。一般情況下,在中文英文數字特殊字符混合的字符串中查找,應該使用SEARCH函數。
      把以上兩個函數翻譯成中文,其語法為:
      SEARCH(要找的字符,包含字符的字符串,從串中的第幾個位置開始找)
      SEARCHB(要找的字符,包含字符的字符串,從串中的第幾個位置開始找)

    有了如上的函數基礎與理論指導,下面,我們開始查找兩個星號的位置吧。

    ①第一個*星號的位置
    通過函數=SEARCH("~*",A1)即可獲取第一個星號的位置,處于第5位。

    ②第二個*星號的位置
      第二個*星號的位置查找,就比較困難了,公式有點繞口令的感覺。
      總之,公式如下:=

    ?

    代碼如下復制代碼
    SEARCH("~*",A1,SEARCH("~*",A1)+1)


    看到了吧?上述的公式比較復雜,但是,卻也很好理解。
    通過公式=SEARCH("~*",A1)可獲得第一個位置,那么,再第一個位置的基礎上加1,從這個位置開始繼續往下找,就可以找到第二星號的位置,所以,公式就是上圖中稍微繞口的函數了。

    三、從帶有星號的字符串中提取數字
      有了一二的基礎,現在,我們該是提取數字了。
    ①提前第一個星左邊的數字公式

    ?

    代碼如下復制代碼
    =LEFT(A1,SEARCHB("~*",A1)-1)

    ②提取中間那個數字的公式

    ?

    代碼如下復制代碼
    =MID(A1,SEARCHB("~*",A1)+1,(SEARCHB("~*",A1,SEARCHB("~*",A1)+1))-SEARCHB("~*",A1)-1)

    ?

    ?

    ?

    ==========================result

    {=MID(A1,MATCH(TRUE,ISNUMBER(1*MID(A1,ROW($1:$9),1)),0),COUNT(1*MID(A1,ROW($1:$9),1))+(LEN(A1)-LEN(SUBSTITUTE(A1,".", ""))))}

    總結

    以上是生活随笔為你收集整理的从字母数字字符串中提取数字的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 青青草国产一区二区三区 | 男人女人拔萝卜视频 | 亚洲看片 | 午夜电影一区二区 | 精品欧美激情精品一区 | 美女被娇喘视频 | 亚洲色图视频在线 | 日本福利片在线观看 | 亚洲精品理论片 | 久久精品男人的天堂 | 宅男av在线| 国产夫妻性爱视频 | 欧美一区二区三区爽爽爽 | 国产精品一区2区 | 美女国产一区 | 又黄又爽又刺激的视频 | 99免费在线观看 | 亚洲欧美国产一区二区三区 | 久久久精品中文字幕麻豆发布 | 人妻一区二区视频 | 三级自拍视频 | 欧美做受高潮中文字幕 | 少妇厨房愉情理伦bd在线观看 | 欧美浮力影院 | 精品一区二区三区毛片 | 久久综合网址 | 久久伊人中文字幕 | 99热思思 | 亚洲一区二区三区免费在线观看 | 网站黄色在线观看 | 亚洲视频久久 | 在线免费观看一区二区 | 韩日欧美 | 黄瓜视频在线观看 | 欧美乱码视频 | 又黄又爽又色的视频 | xxxx久久| 总裁边开会边做小娇妻h | 红色假期黑色婚礼2 | 中文字幕巨乳 | 国产一级爱 | 久久久久久欧美精品se一二三四 | 中文字幕在线观看网站 | 草莓视频在线观看18 | 成人午夜视频在线免费观看 | av2014天堂网 | 在线观看国产精品一区 | 黄a在线观看 | 五月导航| 五十路黄色片 | 黄色片xxxx | 国产精品一区不卡 | av网站免费在线 | 日本视频在线看 | 光棍影院手机版在线观看免费 | 台湾swag在线播放 | 日本免费爱爱视频 | 激情国产精品 | 国产日韩精品suv | 男人天堂中文字幕 | 无码国产伦一区二区三区视频 | 久久久艹 | 在线免费观看a级片 | 欧美顶级少妇做爰hd | 91禁蘑菇在线看 | 国产精品3 | 国产又黄又猛又粗又爽 | 国产v亚洲v天堂无码 | 中文字幕亚洲无线码在线一区 | 日本一区不卡在线观看 | 成人黄色片视频 | 老汉av网站 | 强睡邻居人妻中文字幕 | 翔田千里在线播放 | 亚洲一区二区中文字幕 | av在线免费观看不卡 | 成人精品久久久 | 在线观看成人小视频 | 欧美三级韩国三级日本三斤在线观看 | 国产理论在线 | 日韩毛片免费观看 | 日av一区| 777国产成人入口 | 国产偷怕| 韩国黄色网址 | 日皮视频在线观看 | 裸体女人a级一片 | 国产少女免费观看高清 | 欧美 亚洲 | 黄色免费视频 | 久久精品影视 | 欧美视频综合 | 日韩成人动漫在线观看 | 国产精品色网 | 国产精品久久久久久久久免费看 | 69色 | 精精国产| 国产福利视频一区二区 | 法国经典free性复古xxxx |