历史版本5 :将数字转换成大写中文形式 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

问题描述

在票据、落款类报表中,为防止随意涂改作假,常需将金额数字转换为大写中文人民币形式。

1606273045894137.png

2 解决思路编辑

使用NUMTO()、CONCATENATE()、MAPARRAY()等函数组合运用,通过字符转化,替换,拼接等方式,将其转化为中文人民币输出即可。

  • 示例: 1234.123 返回值:壹仟贰佰叁拾肆点壹贰叁

  • 示例: 520.1314 返回值:伍佰贰拾点壹叁壹肆

  • 示例:      12.12 返回值:壹拾贰点壹贰

  • 注:NUMTO()函数不支持小数。

3. 示例编辑

3.1 控件设置

新建一张普通报表,右击任意单元格(例如A1单元格),输入数值(1234.123),如下:

 1606273114624384.png


3.2 公式设置

选中B1单元格,输入公式:=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', "玖")), ",", ""))

2020-11-25_10-58-55.png

注:公式以“小数点”分割,左边部分通过函数CNMONEY()直接转换,右边部分通过函数MAPARRAY()将具体每一位数字转换成杜对应的大写中文字符,最后将整个结果通过函数CONCATENATE()拼接起来。


3. 保存预览编辑

保存模板,选择分页预览。显示效果:

1606273204153165.png

注:有些日期的中文形式还想含有星期。


4. 模板下载编辑