FM數值轉中文大寫金額函數分享

數值轉中文大寫金額,這是我個人不管用VB VBA,都會寫成的一個函數,寫法分享如下,若想轉換成含小數兩位的中文大寫金額,請諸君就這個函數,自行加工完成它,算是自己的用功。

 

函數名稱:20位數以內的金額,轉成中文大寫金額

TranCMY(金額)

 

函式內容:

Let (

[

金額單位="元拾佰仟萬拾佰仟億拾佰仟兆拾佰仟京拾佰仟";

數字大寫="零壹貳參肆伍陸柒捌玖";

金額長度=Length ( Filter (金額 ; "0123456789" ) );

純數字金額=Filter (金額 ; "0123456789" ) ;

1=

    If (Middle ( 純數字金額 ; 金額長度 ; 1 )=0 ; "" ;   

       If(金額長度>0;

           Middle (數字大寫 ; Middle ( 純數字金額 ; 金額長度 ; 1 )+1 ; 1 ) &

           Middle (金額單位 ; 1 ; 1 ))

    );

2=

    If (Middle ( 純數字金額 ; 金額長度-1 ; 1 )=0 ; "" ;   

       If(金額長度>1;

           Middle (數字大寫 ; Middle ( 純數字金額 ; 金額長度-1 ; 1 )+1 ; 1 ) &

           Middle (金額單位 ; 2 ; 1 ))

     );

3=

    If (Middle ( 純數字金額 ; 金額長度-2 ; 1 )=0 ; "" ;   

       If(金額長度>2;

           Middle (數字大寫 ; Middle ( 純數字金額 ; 金額長度-2 ; 1 )+1 ; 1 ) &

           Middle (金額單位 ; 3 ; 1 ))

    );

4=

    If (Middle ( 純數字金額 ; 金額長度-3 ; 1 )=0 ; "" ;   

       If(金額長度>3;

           Middle (數字大寫 ; Middle ( 純數字金額 ; 金額長度-3 ; 1 )+1 ; 1 ) &

           Middle (金額單位 ; 4 ; 1 ))

    );

5=

    If (Middle ( 純數字金額 ; 金額長度-4 ; 1 )=0 ; "" ;   

       If(金額長度>4;

           Middle (數字大寫 ; Middle ( 純數字金額 ; 金額長度-4 ; 1 )+1 ; 1 ) &

           Middle (金額單位 ; 5 ; 1 ))

    );

6=

    If (Middle ( 純數字金額 ; 金額長度-5 ; 1 )=0 ; "" ;   

       If(金額長度>5;

           Middle (數字大寫 ; Middle ( 純數字金額 ; 金額長度-5 ; 1 )+1 ; 1 ) &

           Middle (金額單位 ; 6 ; 1 ))

    );

7=

    If (Middle ( 純數字金額 ; 金額長度-6 ; 1 )=0 ; "" ;   

       If(金額長度>6;

           Middle (數字大寫 ; Middle ( 純數字金額 ; 金額長度-6 ; 1 )+1 ; 1 ) &

           Middle (金額單位 ; 7 ; 1 ))

    );

8=

    If (Middle ( 純數字金額 ; 金額長度-7 ; 1 )=0 ; "" ;   

       If(金額長度>7;

           Middle (數字大寫 ; Middle ( 純數字金額 ; 金額長度-7 ; 1 )+1 ; 1 ) &

           Middle (金額單位 ; 8 ; 1 ))

    );

9=

    If (Middle ( 純數字金額 ; 金額長度-8 ; 1 )=0 ; "" ;   

       If(金額長度>8;

           Middle (數字大寫 ; Middle ( 純數字金額 ; 金額長度-8 ; 1 )+1 ; 1 ) &

           Middle (金額單位 ; 9 ; 1 ))

    );

10=

    If (Middle ( 純數字金額 ; 金額長度-9 ; 1 )=0 ; "" ;   

       If(金額長度>9;

           Middle (數字大寫 ; Middle ( 純數字金額 ; 金額長度-9 ; 1 )+1 ; 1 ) &

           Middle (金額單位 ; 10 ; 1 ))

    );

11=

    If (Middle ( 純數字金額 ; 金額長度-10 ; 1 )=0 ; "" ;   

       If(金額長度>10;

           Middle (數字大寫 ; Middle ( 純數字金額 ; 金額長度-10; 1 )+1 ; 1 ) &

           Middle (金額單位 ; 11 ; 1 ))

    );

12=

    If (Middle ( 純數字金額 ; 金額長度-11 ; 1 )=0 ; "" ;   

       If(金額長度>11;

           Middle (數字大寫 ; Middle ( 純數字金額 ; 金額長度-11 ; 1 )+1 ; 1 ) &

           Middle (金額單位 ; 12 ; 1 ))

    );

13=

    If (Middle ( 純數字金額 ; 金額長度-12 ; 1 )=0 ; "" ;   

       If(金額長度>12;

           Middle (數字大寫 ; Middle ( 純數字金額 ; 金額長度-12 ; 1 )+1 ; 1 ) &

           Middle (金額單位 ; 13 ; 1 ))

    );

14=

    If (Middle ( 純數字金額 ; 金額長度-13 ; 1 )=0 ; "" ;   

       If(金額長度>13;

           Middle (數字大寫 ; Middle ( 純數字金額 ; 金額長度-13 ; 1 )+1 ; 1 ) &

           Middle (金額單位 ; 14 ; 1 ))

    );

15=

    If (Middle ( 純數字金額 ; 金額長度-14 ; 1 )=0 ; "" ;   

       If(金額長度>14;

           Middle (數字大寫 ; Middle ( 純數字金額 ; 金額長度-14 ; 1 )+1 ; 1 ) &

           Middle (金額單位 ; 15 ; 1 ))

    );

16=

    If (Middle ( 純數字金額 ; 金額長度-15 ; 1 )=0 ; "" ;   

       If(金額長度>15;

           Middle (數字大寫 ; Middle ( 純數字金額 ; 金額長度-15 ; 1 )+1 ; 1 ) &

           Middle (金額單位 ; 16 ; 1 ))

    );

17=

    If (Middle ( 純數字金額 ; 金額長度-16 ; 1 )=0 ; "" ;   

       If(金額長度>16;

           Middle (數字大寫 ; Middle ( 純數字金額 ; 金額長度-16 ; 1 )+1 ; 1 ) &

           Middle (金額單位 ; 17 ; 1 ))

    );

18=

    If (Middle ( 純數字金額 ; 金額長度-17 ; 1 )=0 ; "" ;   

       If(金額長度>17;

           Middle (數字大寫 ; Middle ( 純數字金額 ; 金額長度-17 ; 1 )+1 ; 1 ) &

           Middle (金額單位 ; 18 ; 1 ))

    );

19=

    If (Middle ( 純數字金額 ; 金額長度-18 ; 1 )=0 ; "" ;   

       If(金額長度>18;

           Middle (數字大寫 ; Middle ( 純數字金額 ; 金額長度-18 ; 1 )+1 ; 1 ) &

           Middle (金額單位 ; 19 ; 1 ))

    );

20=

    If (Middle ( 純數字金額 ; 金額長度-19 ; 1 )=0 ; "" ;   

       If(金額長度>19;

           Middle (數字大寫 ; Middle ( 純數字金額 ; 金額長度-19 ; 1 )+1 ; 1 ) &

           Middle (金額單位 ; 20 ; 1 ))

    )    

];

        

20 & 19 & 18 & 17 & 16 & 15 & 14 & 13 & 12 & 11 & 10 & 9 & 8 & 7 & 6 & 5 & 4 & 3 & 2 & 1 &""

 

)

文章標籤
全站熱搜
創作者介紹
創作者 桓德 的頭像
桓德

南區農漁會電腦小組園地

桓德 發表在 痞客邦 留言(0) 人氣(0)