使用過Microsoft Excel電子表的人(尤其是財務人員),經常會遇到將阿拉伯數字轉換成人民幣大寫的問題,如:在D25單元格中有自動求和后的一串阿拉伯數字“789456.65”元,需要在A25單元格中自動轉換為“人民幣大寫:柒拾捌萬玖仟肆佰伍拾陸元陸角伍分”,如果用手動去填寫也未嘗不可,但是,只要D25的數字一變,就得重新填寫一次,非常麻煩,尤其是在進行財務報表應用時,就更不方便,如果能自動轉換,就會方便得多。
說到這,有的人可能會說:這還不方便?使用單元格格式設置功能,將A25單元格的格式設置成“特殊”格式中的“中文大寫數字”不就得了,何必這么復雜呢?
其實,對于這一功能我們可能都使用過,其結果會怎樣呢?大家都知道,在Microsoft Excel中,僅僅使用格式設置的方法是不能達到目的的!譬如:將阿拉伯數字“789456.65”通過格式設置的方法,其結果只能得到“柒拾捌萬玖仟肆佰伍拾陸點陸伍”,而不是“柒拾捌萬玖仟肆佰伍拾陸元陸角伍分”。這是因為,在Microsoft Excel中沒有一個單一的函數能完成這樣復雜的運算,必須使用多個函數進行條件運算才能實現。
如何才能實現這樣復雜的函數運算呢?
我這里有一組條件運算的方法,這一組條件運算的方法,是基于G19單元格中阿拉伯數字值進行自動轉換的,將這一組條件運算函數寫到哪個單元格,這個單元格就會自動將G19中的阿拉伯數字轉換成人民幣大寫數值,不信?您試試?
我們將G19單元格確定為數據匯總后的人民幣小寫數值(即阿拉伯數字),需要在B19單元格中自動轉換成人民幣大寫數值,那么,請選定B19單元格,將下面的多個函數條件運算語句寫入并按回車鍵,看看結果會怎樣?
="人民幣大寫: "&IF((G19-INT(G19))=0,TEXT(G19,"[DBNUM2]")&"元整",IF(INT(G19*10)-G19*10=0,TEXT(INT(G19),"[DBNUM2]")&"元"&TEXT((INT(G19*10)-INT(G19)*10),"[DBNUM2]")&"角整",TEXT(INT(G19),"[DBNUM2]")&"元"&IF(INT(G19*10)-INT(G19)*10=0,"零",TEXT(INT(G19*10)-INT(G19)*10,"[DBNUM2]")&"角")&TEXT(RIGHT(G19,1),"[DBNUM2]")&"分"))
結果很明顯,完全正確地實現了人民幣大寫轉換!說到這,應該大功告成了。但是,大家可能會說:這一串函數運算是怎么回事?看不懂。是的,對于初學者來說,可能是很復雜也根本看不懂,那么,我就再哆嗦幾句,給大家再講一講其運算的思路和方法吧。
要弄明白,還得講清楚兩個方面的問題:
第一方面:對于單元格中的人民幣數值而言,有四種可能性出現:
即:整數(精確到元);1位小數(精確到角);2位小數(精確到分),中間出現零。因此,就有四種判斷,是整數還是小數?是1位小數還是2位小數?中間是否出現零?
從上面的運算過程中可以看出,IF((G19-INT(G19))=0,TEXT(G19,"[DBNUM2]")&"元整"為整數時的條件運算方法,IF(INT(G19*10)-G19*10=0,TEXT(INT(G19),"[DBNUM2]")&"元"&TEXT((INT(G19*10)-INT(G19)*10),"[DBNUM2]")&"角整"為1位小數時的條件運算方法,而TEXT(INT(G19*10)-INT(G19)*10,"[DBNUM2]")&"角")&TEXT(RIGHT(G19,1),"[DBNUM2]")&"分"))則是有2位小數的條件運算方法,對于中間出現零,則用IF(INT(G19*10)-INT(G19)*10=0,"零"來進行運算。
第二方面:對于函數而言,我們必須弄明白以下幾個函數的意義和語句格式。
1、條件判斷函數IF:執行真假值判斷,根據邏輯計算的真假值,返回不同結果。
可以使用函數 IF 對數值和公式進行條件檢測。
語法
IF(logical_test,value_if_true,value_if_fal)
Logical_test 表示計算結果為 TRUE 或 FALSE 的任意值或表達式。例如,A10=100 就是一個邏輯表達式,如果單元格 A10 中的值等于 100,表達式即為 TRUE,否則為 FALSE。本參數可使用任何比較運算符。
Value_if_true logical_test 為 TRUE 時返回的值。例如,如果本參數為文本字符串“預算內”而且 logical_test 參數值為 TRUE,則 IF 函數將顯示文本“預算內”。如果 logical_test 為 TRUE 而 value_if_true 為空,則本參數返回 0(零)。如果要顯示 TRUE,則請為本參數使用邏輯值 TRUE。Value_if_true 也可以是其他公式。
Value_if_fal logical_test 為 FALSE 時返回的值。例如,如果本參數為文本字符串“超出預算”而且 logical_test 參數值為 FALSE,則 IF 函數將顯示文本“超出預算”。如果 logical_test 為 FALSE 且忽略了 Value_if_fal(即 value_if_true 后沒有逗號),則會返回邏輯值 FALSE。如果 logical_test 為 FALSE 且 Value_if_fal 為空(即 value_if_true 后有逗號,并緊跟著右括號),則本參數返回 0(零)。Value_if_fal 也可以是其他公式。
2、向下舍取整數函數INT:這個函數的功能是將數字向下舍入到最接近的整數。
語法
INT(number)
Number 需要進行向下舍入取整的實數。
3、數值文本轉換函數TEXT:將數值轉換為按指定數字格式表示的文本。
語法
TEXT(value,format_text)
Value 為數值、計算結果為數字值的公式,或對包含數字值的單元格的引用。
Format_text 為“單元格格式”對話框中“數字”選項卡上“分類”框中的文本形式的數字格式。
4、返回字符串中最后1個或多個字符函數RIGHT:根據所指定的字符數返回文本字符串中最后一個或多個字符。
語法
RIGHT(text,num_chars)
Text 是包含要提取字符的文本字符串。
Num_chars 指定希望 RIGHT 提取的字符數。
5、文本運算符&:將兩個文本值連接或串起來產生一個連續的文本值。
6、格式命令DBNUM2:將該單元格或字符串的格式設置為“特殊”格式中的“中文大寫數字”格式。
講清了可能出現的四種情況和幾個運算函數,現在,再來談談條件運算的思路。要完全正確地進行人民幣大寫轉換,就必須應用以上的條件判斷通過函數運算來實現。
首先,要在字符串前面加上“人民幣大寫:”的中文字,并與后面的大寫字符串連接起來,形成一個完整的書寫格式,就必須應用文本運算符“&”,因此,語句開頭必須寫“="人民幣大寫: "&”,使它與后面的字符串連接起來,后面的“元”、“角”、“分”、“整”等均應用這個方法來實現。
第二,針對可能出現整數(即精確到元)的情況,需要判斷是否為整數。應用“IF((G19-INT(G19))=0,TEXT(G19,"[DBNUM2]")&"元整"”語句進行條件判斷和函數運算,如果G19單元格中的數值減去該單元格數值向下舍取整數后為0,則表明該數值為整數,那么,直接將該數值的格式設置為“特殊”格式中的“中文大寫數字”格式,并在后面加上“元整”字符串,如果不是,則進行下面的判斷。
第三,針對可能出現1位小數(即精確到角)的情況,需要繼續進行判斷其是否為1位小數。應用“IF(INT(G19*10)-G19*10=0,TEXT(INT(G19),"[DBNUM2]")&"元"&TEXT((INT(G19*10)-INT(G19)*10),"[DBNUM2]")&"角整"”語句進行條件判斷和函數運算,如果該數值為1位小數,則該數值乘以10后向下舍取整數的值應與該數值直接乘以10的值相等,即INT(G19*10)-G19*10=0,當INT(G19*10)-G19*10=0時,說明條件為真,否則,進行下面的函數運算。
第四,針對可能出現2位小數(即精確到分)的情況,應用“TEXT(INT(G19*10)-INT(G19)*10,"[DBNUM2]")&"角")&TEXT(RIGHT(G19,1),"[DBNUM2]")&"分"”的語句進行函數運算,其原理與上述基本相同,不同之處是這里應用了返回文本字符串中最后一個或多個字符“RIGHT”。通過TEXT(RIGHT(G19,1),"[DBNUM2]")&"分"語句完成最后1位數值(即分)的轉換。
第五,針對中間可能出現零的情況,需要應用“IF(INT(G19*10)-INT(G19)*10=0,"零"”語句來進行運算。
通過以上五種條件判斷和函數運算,就可以正確地進行人民幣大寫數字轉換了。
本人也是初學者,也是通過查閱了很多資料后才對此方法有一點理解并能進行函數運算的,希望我的這點體會能對您的工作有所幫助,如有不正確的地方,還請諒解并提出寶貴意見為盼!
本文發布于:2023-02-28 21:09:00,感謝您對本站的認可!
本文鏈接:http://m.newhan.cn/zhishi/a/1677731491101070.html
版權聲明:本站內容均來自互聯網,僅供演示用,請勿用于商業和其他非法用途。如果侵犯了您的權益請與我們聯系,我們將在24小時內刪除。
本文word下載地址:excel 人民幣大寫(excel 人民幣大寫公式).doc
本文 PDF 下載地址:excel 人民幣大寫(excel 人民幣大寫公式).pdf
| 留言與評論(共有 0 條評論) |