ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 1260|回复: 1

[分享] 分享自己编写的PQ转换大写金额函数

[复制链接]

TA的精华主题

TA的得分主题

发表于 2022-12-14 10:56 | 显示全部楼层 |阅读模式
本帖最后由 css207 于 2022-12-15 16:35 编辑
  1. let
  2.     Text.Crmb = (money as number) as text=>
  3.     if Number.Abs(money) > 10000000000000 then "金额过大,本函数不支持!"
  4.     else if money = 0 then "零元整"
  5.     else [
  6.     cnum="零壹贰叁肆伍陆柒捌玖-万仟佰拾亿仟佰拾万仟佰拾元角分",
  7.     snum = Text.From(Number.Round(Number.Abs(money)*100)),
  8.     len = Text.Length(snum),
  9.     r=(x as number) as text => if x = 0 then Text.Combine({Text.Middle(cnum, Number.FromText(Text.Middle(snum, 0 , 1)), 1),Text.Middle(cnum,26 - len + 0, 1)})
  10.     else Text.Combine({@r(x-1),Text.Combine({Text.Middle(cnum, Number.FromText(Text.Middle(snum, x , 1)), 1),Text.Middle(cnum,26 - len + x, 1)})}),
  11.     r0 = r(len-1),
  12.     r1 = Text.Replace(r0, "零仟", "零"),
  13.     r2 = Text.Replace(r1, "零佰", "零"),
  14.     r3 = Text.Replace(r2, "零拾", "零"),
  15.     r4 = Text.Replace(r3, "零零", "零"),
  16.     r5 = Text.Replace(r4, "零零", "零"),
  17.     r6 = Text.Replace(r5, "零亿", "亿"),
  18.     r7 = Text.Replace(r6, "零万", "万"),
  19.     r8 = Text.Replace(r7, "零元", "元"),
  20.     r9 = Text.Replace(r8, "亿万", "亿"),
  21.     r10 = Text.Replace(r9, "零角", "零"),
  22.     r11 = Text.Replace(r10, "零分", "整"),
  23.     r12 = Text.Replace(r11, "零整", "整"),
  24.     r13 = if money > 0 then r12 else Text.Combine({"负", r12})
  25.     ][r13]
  26. in
  27.     Text.Crmb
复制代码

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2022-12-15 13:42 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-27 21:14 , Processed in 0.030502 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表