反饋已提交

網絡繁忙

将数字转换成大写中文形式

1. 概述

1.1 問題描述

  • Cnmoney函式 在將數字轉換為人民幣大寫時,小數部分只能精確到分,使用者希望能夠將小數部分精確到釐、毫。

  • 在票據、落款類報表中,想要直接展示金額、數位的中文大寫形式,而非人民幣形式。

1.2 解決思路

序號範例方案實現效果
1轉換為中文大寫

方案一:

若您使用的設計器是 11.0.4 以及之後的版本,可以使用 NUMTO

注:NUMTO() 函式不支援小數。

方案二:

1)整數部分可直接透過 Cnmoney 函式進行轉換

2)小數部分組合運用 MAPARRAY、REPLACE 等函式進行更換

3)最後進行連接即可

12 的傳回值:壹拾貳

1234.1234 的傳回值:壹仟貳佰叄拾肆點壹貳叄肆


2轉換為人名幣大寫(精確到釐、毫 )

1)Cnmoney 函式精度範圍內的數字直接透過該函式進行轉換

2)精度外的數字透過 SWITCH、INDEXOF等函式按位取出,單獨進行轉換

3)最後進行連接即可

12 的傳回值:壹拾貳圓整

1234.1234 的傳回值:壹仟貳佰叄拾肆圓壹角貳分叄釐肆毫


2. 範例

2.1 範本設計

1)建立一張普通報表,右擊任意儲存格(例如A1儲存格),輸入數值1234.123,如下圖所示:

 

2)選中 B1 儲存格,輸入公式:IF(FIND(".",A1)>0,CONCATENATE(REPLACE(CNMONEY(LEFT(A1, FIND(".", A1) - 1)), "圓整", ""), "點", REPLACE(MAPARRAY(split(mid(A1, FIND(".", A1)   1, 100), ""), SWITCH(item, '0', "零", '1', "壹", '2', "貳", "3", "叄", '4', "肆", "5", "伍", "6", "陸", '7', "柒", '8', "捌", '9', "玖")), ",", "")),REPLACE(CNMONEY(A1),"圓整",""))

,如下圖所示:

公式說明:

公式說明
FIND(".",A1)>0是否存在小數
REPLACE(CNMONEY(LEFT(A1, FIND(".", A1) - 1)), "圓整", "")

若存在小數,小數點左邊部分透過函式 CNMONEY() 直接轉換為中文

REPLACE(MAPARRAY(split(mid(A1, FIND(".", A1)   1, 100), ""), SWITCH(item, '0', "零", '1', "壹", '2', "貳", "3", "叄", '4', "肆", "5", "伍", "6", "陸", '7', "柒", '8', "捌", '9', "玖")), ",", "")右邊部分透過函式 MAPARRAY() 將具體每一位數字轉換成杜對應的大寫中文字元
CONCATENATE(REPLACE(CNMONEY(LEFT(A1, FIND(".", A1) - 1)), "圓整", ""), "點", REPLACE(MAPARRAY(split(mid(A1, FIND(".", A1)   1, 100), ""), SWITCH(item, '0', "零", '1', "壹", '2', "貳", "3", "叄", '4', "肆", "5", "伍", "6", "陸", '7', "柒", '8', "捌", '9', "玖")), ",", ""))左右結果透過函式 CONCATENATE()連接起來
REPLACE(CNMONEY(A1),"圓整","")若不存在小數,直接透過函式 CNMONEY() 轉換為中文,並去掉人民幣單位即可


2.2 效果預覽

儲存範本,選擇分頁預覽,如下圖所示:

2.3 範本下載

已完成範本,可參見:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\SpecialSubject\function\數字轉換成中文大寫.cpt

點選下載範本:數字轉換為中文大寫.cpt

3. 範例二:轉換為人民幣大寫(精確到毫)

3.1 範本設計

1)建立一張普通報表,選中任意儲存格(例如 A1 儲存格),輸入數值17.3456,如下圖所示:

2)選中 B1 儲存格,輸入公式:SWITCH(LEN(MID(A1,FIND(".",A1) 1,100)),0,CNMONEY(A1),1,CNMONEY(A1),2,CNMONEY(A1),3,CONCATENATE(CNMONEY(left(A1,LEN(A1)-1)),SWITCH(INDEXOF(A1,
FIND(".",A1) 2),'0',"零",'1',"壹",'2',"貳","3","叄",'4',"肆","5","伍","6","陸",'7',"柒",'8',"捌",'9',"玖") "釐"),4,CONCATENATE(CNMONEY(left(A1,LEN(A1)-2)),,SWITCH(INDEXOF(A1,
FIND(".",A1) 2),'0',"零",'1',"壹",'2',"貳","3","叄",'4',"肆","5","伍","6","陸",'7',"柒",'8',"捌",'9',"玖") "釐" SWITCH(INDEXOF(A1,FIND(".",A1) 3),'0',"零",'1',"壹",'2',"貳","3","叄",'4',"肆",
"5","伍","6","陸",'7',"柒",'8',"捌",'9',"玖") "毫"))

,如下圖所示:

公式說明如下:

注:在使用 Cnmoney函式 時,若小數位超過兩位(精度超過分),Cnmoney 函式會對數字四捨五入後再轉人名幣大寫。

公式說明
LEN(MID(A1,FIND(".",A1) 1,100))

判斷小數部分的位數(精度)

CNMONEY(left(A1,LEN(A1)-1))


為防止 Cnmoney 函式四捨五入,僅取出精度範圍內的部分進行轉換

SWITCH(INDEXOF(A1,FIND(".",A1) 2),'0',"零",'1',"壹",'2',"貳","3","叄",'4',"肆","5","伍","6","陸",'7',"柒",'8',"捌",'9',"玖") "釐")

精度外的部分透過 Switch 函式進行轉換:

  • 先透過 INDEXOF 函式取出小數點後第三位(釐)上的數字

  • 透過 SWITCH 函式將數字轉大寫,並加上單位「釐」

CONCATENATE(CNMONEY(left(A1,LEN(A1)-1)),SWITCH(INDEXOF(A1,FIND(".",A1) 2),'0',"零",'1',"壹",'2',"貳","3","叄",'4',"肆","5","伍","6","陸",'7',"柒",'8',"捌",'9',"玖") "釐")

透過 CONCATENATE 函式將以上兩步轉換後的內容連接在一

CONCATENATE(CNMONEY(left(A1,LEN(A1)-2)),,SWITCH(INDEXOF(A1,FIND(".",A1) 2),'0',"零",'1',"壹",'2',"貳","3","叄",'4',"肆","5","伍","6","陸",'7',"柒",'8',"捌",'9',"玖") "釐" SWITCH(INDEXOF(A1,FIND(".",A1) 3),'0',"零",'1',"壹",'2',"貳","3","叄",'4',"肆","5","伍","6","陸",'7',"柒",'8',"捌",'9',"玖") "毫")

同理可將小數第四位(釐)上的數字轉換為人民幣大寫

SWITCH(LEN(MID(A1,FIND(".",A1) 1,100)),

0,CNMONEY(A1),

1,CNMONEY(A1),

2,CNMONEY(A1),

3,CONCATENATE(CNMONEY(left(A1,LEN(A1)-1)),SWITCH(INDEXOF(A1,FIND(".",A1) 2),'0',"零",'1',"壹",'2',"貳","3","叄",'4',"肆","5","伍","6","陸",'7',"柒",'8',"捌",'9',"玖") "釐"),

4,CONCATENATE(CNMONEY(left(A1,LEN(A1)-2)),,SWITCH(INDEXOF(A1,FIND(".",A1) 2),'0',"零",'1',"壹",'2',"貳","3","叄",'4',"肆","5","伍","6","陸",'7',"柒",'8',"捌",'9',"玖") "釐" SWITCH(INDEXOF(A1,FIND(".",A1) 3),'0',"零",'1',"壹",'2',"貳","3","叄",'4',"肆","5","伍","6","陸",'7',"柒",'8',"捌",'9',"玖") "毫"))

透過 SWITCH 函式,根據小數部分的位數選擇對應的轉換方式:

  • 位數為 0~2(即精度最大到分)時,直接透過 CNMONEY 函式轉換

  • 位數為 3(釐),需分別對分位、釐位進行轉換後,再進行連接

  • 位數為 4(毫),需分別對分位、釐位、毫位進行轉換後,再進行連接

3.2 效果預覽

儲存範本,選擇分頁預覽,如下圖所示:

3.3 範本下載

點選下載已完成範本:數字轉換為人民幣大寫(精確到毫).cpt


附件列表


主題: 報表專題
  • 有幫助
  • 沒幫助
  • 只是瀏覽
  • 圖片不清晰
  • 用語看不懂
  • 功能說明看不懂
  • 操作說明太簡單
  • 內容有錯誤
中文(繁體)

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

10s後關閉

獲取幫助
線上支援
獲取專業技術支援,快速幫助您解決問題
工作日9:00-12:00,13:30-17:30在线
頁面反饋
針對當前網頁的建議、問題反饋
售前咨詢
業務咨詢
電話:0933-790886或 0989-092892
郵箱:taiwan@fanruan.com
頁面反饋
*問題分類
不能為空
問題描述
0/1000
不能為空

反馈已提交

网络繁忙