Q28

Excel怎麼取出字串中的數字轉換成國字,字串無固定規則

示範檔

範例檔

Q28.XLSX

結果檔

Q28F.XLSX

錦子老師您好:

我遇到的問題如下:

1.英文字可能出現在字串任何位置。

2.英文字母沒有固定位置和字元數。

如下舉例:

38D → 三八D

2A2B→ 二A二B

A17B→ A十七B

字元數不超過10個,目前我是列出10個儲存格,分別存放每個字元轉成國字或雙字元,再合併到第11個儲存格,不知道能不能用函數在一個儲存格就完成。

不好意思,這個工程以目前的功力是無法完成的,因為要考慮長度及轉換,只能寫一個VBA程式來解決。

方法1IFVLOOKUP函數

1.首先要建立一個對照表,本人是建在N1:O36(0~9A~Z),如下圖所示。

2.B2~K2儲存格中依序輸入1~10

3.點取B2儲存格輸入公式「=IF(B$1>LEN($A2),"",VLOOKUP(MID($A2,B$1,1), $N$1:$O$36,2,0))」後,按Enter鍵。

4.B2儲存格公式複製到C2~K2儲存格。

5.點取L2儲存格輸入公式「=B2&C2&D2&E2&F2&G2&H2&I2&J2&K2」後,按Enter鍵,結果如下圖所示。

6.B2~K2儲存格框選起來,再將公式複製到B3~K4儲存格。

方法2VBA-自訂函數

1.ALT+F11鍵開啟VBA視窗,如下圖所示。

2.點取「插入 > 模組」指令,新增一個空白模組,如下圖所示。

3.輸入下列VBA程式:

Function NumtoStr(Str As String) As String

    For i = 1 To Len(Str)

        X = Mid(Str, i, 1)

        Select Case True

            Case X = 0

                y = y & ""

            Case X = 1

                y = y & ""

            Case X = 2

                y = y & ""

            Case X = 3

                y = y & ""

            Case X = 4

                y = y & ""

            Case X = 5

                y = y & ""

            Case X = 6

                y = y & ""

            Case X = 7

                y = y & ""

            Case X = 8

                y = y & ""

            Case X = 9

                y = y & ""

            Case Else

                y = y & X

        End Select

    Next i

    NumtoStr = y

End Function

4.點取VBA視窗右上角「X」關閉鈕關閉視窗。

5.點取B5儲存格輸入公式「=NUMTOSTR(A5)」後,按Enter鍵,即可看到完成結果,如下圖所示。


arrow
arrow

    錦子老師 發表在 痞客邦 留言(0) 人氣()