
NUMBERSTRING函数专门解决这个问题,使用规则如下:

1.纯数字转换:

【说明】:
①由图2示例可以看出, NUMBERSTRING并不能识别负数。为了正常转换,可以特殊处理:

如图3,单元格C7的公式为:
=IF(A7<0,"负"&NUMBERSTRING(ABS(A7),1),NUMBERSTRING(A7,1))
其执行逻辑是:
- 先做正负数判断;
- 如果为负数,该公式先用ABS函数将其转换为正数,然后交NUMBERSTRING转换;
- 最后在转换结果前加上“负”。
② NUMBERSTRING会将小数点后数值四舍五入成正数,然后转换:

若不需要四舍五入,则要识别小数点后的小数,需要特殊处理:
=NUMBERSTRING(INT(A10),1)&"点"&NUMBERSTRING(MOD(A10,1)*100,3)
其执行逻辑是:
- NUMBERSTRING(INT(A10),1)&"点":截取整数部分,转换成中文,加上中文数字拼写时需要的“点”;
- MOD(A10,1)*100:截取小数部分,转换成整数;
- NUMBERSTRING(…,3) :将小数部分的转换结果,按照读数习惯转成中文。
2. 转换中文的同时,加上元角分

这是一个标准的函数组合,直接用即可:
=IF(A21=0,"",IF(INT(A21),TEXT(TRUNC(A21),"[dbnum2]")&"元","")&IF(MOD(A21,1)=0,"整",IF(TRUNC(A21,1),IF(A21=TRUNC(A21,1),TEXT(LEFT(RIGHT(A21*100,2)),"[dbnum2]0角整"),TEXT(RIGHT(A21*100,2),"[dbnum2]0"&IF(LEFT(RIGHT(A21*100,2))="0","","角")&"0分")),TEXT(A21*100,"[dbnum2]0分"))))