網友問到:在 Excel 中,如果有一個頭尾是文字、中間是數字的儲存格內容,如何取出其中的數字?

參考下圖,例如:在AB1234ED字串中取出數字1234。

Excel-取出字串中的數字(MID,ISNUMBER,陣列公式)

 

【公式設計與解析】

1. 找出數字第一位的位置

儲存格B5:{=MIN(IF(ISNUMBER(MID(A5,ROW($1:$20),1)*1),ROW($1:$20)))}

(1) MID(A5,ROW($1:$20),1)*1)

在陣列公式中,以 ROW(1:20)產生 1,2,3,4,…,20的數值陣列。

以 MID 函數取出儲存格A5內容的第1個至第20個字。

因為 MID 函數傳回的結果為文字,「*1」的用意為將文字型的數字改為數值型的數字。

以「a24680b」為例,傳回「"a", 2", 4", 6", 8", 0", b", ", ", ", ", ", ", ", ", ", ", ", ", ",」。

 

(2) ISNUMBER(第(1)式)

在陣列公式中,利用 ISNUMBER 函數判斷第(1)式傳回的內容是否為數字,並傳回 TRUE/FALSE。

以「a24680b」為例,傳回「False, TRUE, TRUE, TRUE, TRUE, TRUE, False, False, False, False, False, False, False, False, False, False, False, False, False, False」

 

(3) IF(第(2)式,ROW($1:$20))

以「a24680b」為例,傳回「False, 2, 3, 4, 5, 6, False, False, False, False, False, False, False, False, False, False, False, False, False, False」

 

(4) MIN(第(3)式)

取第(3)式的最小值,以「a24680b」為例,傳回「2」。

2. 找出數字末一位的位置

儲存格C5:{=MAX(IF(ISNUMBER(MID(A5,ROW($1:$20),1)*1),ROW($1:$20)))}

以 MAX 函數取第(3)式的最大值,以「a24680b」為例,傳回「6」。

3. 取出數字

儲存格D5:=MID(A5,B5,C5-B5+1)

MID(A5,B5,C5-B5+1)=MID(A5,2,6)=「24680」。

 

【延伸閱讀】

Excel-依分隔符號取出數字來運算(SUBSTITUTE,LEFT,MID,RIGHT)

Excel-從字串中取出數字並轉換為日期(MID,DATE,TEXT)

Excel-取出儲存格中文數字字串中的數字(陣列公式)

Excel-取出字串中的數字(MID,ISNUMBER,陣列公式)

Excel-取含有文字的儲存格中計算數字總和(SUMPRODUCT,SUBSTITUTE)

Excel-儲存格資料的分割與合併 

學不完.教不停.用不盡文章列表

arrow
arrow

    vincent 發表在 痞客邦 留言(2) 人氣()