excel公式技巧:將所有數字提取到單個單元格

      網友投稿 505 2025-04-01

      excel公式技巧:將所有數字提取到單個單元格

      本文研究從字符串中提取所有數字并將這些數字作為單個數字放置在單個單元格中的技術。

      本文使用與上一篇文中相同的字符串:

      81;8.75>@5279@4.=45>A?A;

      我們希望公式能夠返回:

      818755279445

      解決方案

      相對簡潔的數組公式:

      =NPV(-0.9,IFERROR(MID(A1,1+LEN(A1)-ROW(INDIRECT(“1:”& LEN(A1))),1)/10,””))

      原理解析

      現在,我們應該很熟悉ROW/INDIRECT函數組合了:

      ROW(INDIRECT(“1:” & LEN(A1)))

      生成由1至單元格A1中的字符串長度數組成的數組,本例中A1里的字符串長度為24,因此得到:

      {1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24}

      由1+LEN(A1)=25減去該數組,即:

      25-{1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24}

      得到:

      {24;23;22;21;20;19;18;17;16;15;14;13;12;11;10;9;8;7;6;5;4;3;2;1}

      即公式中MID函數的參數start_num的值,這樣:

      MID(A1,1+LEN(A1)-ROW(INDIRECT(“1:”&LEN(A1))),1)

      轉換為:

      MID(“81;8.75>@5279@4.=45>A?A;”,{24;23;22;21;20;19;18;17;16;15;14;13;12;11;10;9;8;7;6;5;4;3;2;1},1)

      得到:

      {“;”;”A”;”?”;”A”;”>”;”5″;”4″;”=”;”.”;”4″;”@”;”9″;”7″;”2″;”5″;”@”;”>”;”5″;”7″;”.”;”8″;”;”;”1″;”8″}

      再由10除這個數組,得到:

      {#VALUE!;#VALUE!;#VALUE!;#VALUE!;#VALUE!;0.5;0.4;#VALUE!;#VALUE!;0.4;#VALUE!;0.9;0.7;0.2;0.5;#VALUE!;#VALUE!;0.5;0.7;#VALUE!;0.8;#VALUE!;0.1;0.8}

      傳遞給IFERROR函數,得到:

      {“”;””;””;””;””;0.5;0.4;””;””;0.4;””;0.9;0.7;0.2;0.5;””;””;0.5;0.7;””;0.8;””;0.1;0.8}

      繼續之前,我們先看看NPV函數。

      NPV函數具有一個好特性,可以忽略傳遞給它的數據區域中的空格,僅按從左至右的順序操作數據區域內的數值。

      NPV函數的語法為:

      NPV(rate,value1,value2,value3,,,)

      等價于計算下列數的和:

      =value1/(1+rate)^1+value2/(1+rate)^2+value3/(1+rate)^3+…

      excel公式技巧:將所有數字提取到單個單元格

      為了生成想要的結果,需將數組中的元素乘以連續的10的冪,然后將結果相加,可以看到,如果為參數rate選擇合適的值,此公式將為會提供精確的結果。因此,選擇-0.9,不僅因為1-0.9顯然是0.1,而且從指數1開始采用0.1的連續冪時,得到:

      0.1

      0.01

      0.001

      0.0001

      相應地得到:

      10

      100

      1000

      10000

      因此,在示例中,生成的數組的第一個非空元素是0.5,將乘以10;第二個元素0.4乘以100,第三個元素0.4乘以1000,依此類推。

      這樣,公式:

      =NPV(-0.9,IFERROR(MID(A1,1+LEN(A1)-ROW(INDIRECT(“1:”& LEN(A1))),1)/10,””))

      轉換成:

      =NPV(-0.9,{“”;””;””;””;””;0.5;0.4;””;””;0.4;””;0.9;0.7;0.2;0.5;””;””;0.5;0.7;””;0.8;””;0.1;0.8})

      得到:

      818755279445

      注意,應對單元格進行格式設置,否則可能結果是貨幣形式或者指數形式。也可以在公式中添加一個INT函數來確保輸出的是整數:

      =INT(NPV(-0.9,IFERROR(MID(A1,1+LEN(A1)-ROW(INDIRECT(“1:”&LEN(A1))),1)/10,””)))

      其實,還有更復雜的公式可以實現,例如數組公式:

      =SUM(MID(A1,LARGE(IF(ISNUMBER(0+MID(A1,Arry1,1)),Arry1),ROW(INDIRECT(“1:”&COUNT(0+MID(A1,Arry1,1))))),1)*10^(ROW(INDIRECT(“1:”&COUNT(0+MID(A1,Arry1,1))))-1))

      公式中的Arry1是定義的名稱:

      =ROW(INDIRECT(“1:”&LEN($A1)))

      一對比,就會感嘆這樣巧妙的公式應用了,只能說佩服!

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:excel表格如何設置數據按類型匯總(excel怎么設置分類匯總表)
      下一篇:wps ppt 插入的MP4格式的視頻不能播放
      相關文章
      亚洲日韩国产精品无码av| 亚洲精品私拍国产福利在线| 精品无码一区二区三区亚洲桃色| 亚洲午夜av影院| 亚洲国产成人爱av在线播放| 国产亚洲美女精品久久久久| 亚洲av午夜国产精品无码中文字| 亚洲欧洲免费无码| 亚洲国产精品久久久久秋霞小| 亚洲一卡2卡3卡4卡乱码 在线| 亚洲欧洲日韩国产一区二区三区| 亚洲国产乱码最新视频| 亚洲影院天堂中文av色| 亚洲国产精品无码第一区二区三区| 亚洲精品GV天堂无码男同| 亚洲国产精品精华液| 色天使亚洲综合一区二区| 亚洲AV无码一区二三区| 久久久精品国产亚洲成人满18免费网站| 亚洲国产精品激情在线观看| 亚洲人成影院在线观看 | 亚洲特级aaaaaa毛片| 亚洲综合男人的天堂色婷婷| 亚洲午夜电影一区二区三区| 亚洲成a人片在线看| 亚洲日本在线电影| 国产成人亚洲毛片| 中文字幕亚洲天堂| 久久亚洲国产成人亚| 亚洲美女aⅴ久久久91| 亚洲色图激情文学| 午夜亚洲WWW湿好爽| 亚洲国产精品日韩专区AV| 77777亚洲午夜久久多人| 亚洲AV无码不卡无码| 亚洲国产成人精品不卡青青草原| 亚洲精品国产情侣av在线| 亚洲视频一区二区三区四区| 亚洲AV女人18毛片水真多| 国产成人毛片亚洲精品| 亚洲成人在线网站|