工具函数
列统计
=SUMIFS($B$1:$B$100, $A$1:$A$100, A1)
随机数据生成
# 生成I3正负30%的数据
=I3 * (1 + RAND() * 0.6 - 0.3)
# C2 基础数据
# $F$2 误差范围(绝对值)
# $G$2 计算误差
=((RAND()*$F$2+1)*(-1)^INT(RAND()*2)*$G$2)+C2
数字转大写
连贯的转换,包含十位,各位等
替换L4
元素即可
="人民币 " & IF(L4=0,"零元",IF(L4<0,TEXT(INT(ABS(L4)),"负[DBNum2]g/通用格式")&"元"&IF((INT(L4*10)-INT(L4)*10)=0,"",TEXT(INT(L4*10)-INT(L4)*10,"[DBNum2]")&"角")&IF((INT(L4*100)-INT(L4*10)*10)=0,"整",TEXT(INT(L4*10)-INT(L4*10),"[DBNum2]")&TEXT(INT(L4*100)-INT(L4*10)*10,"[DBNum2]")&"分"),TEXT(INT(L4),"[dbnum2]")&"元"&IF(INT(L4*10)-INT(L4)*10=0,"",TEXT(INT(L4*10)-INT(L4)*10,"[dbnum2]")&"角")&IF((INT(L4*100)-INT(L4*10)*10)=0,"整",TEXT(INT(L4*10)-INT(L4*10),"[DBNum2]")&TEXT(INT(L4*100)-INT(L4*10)*10,"[DBNum2]")&"分")))
核心转换
提取各位数值:
- 千位数值:
=INT(MOD(A1,10000)/1000)
- 万位数值:
=INT(MOD(A1,100000)/10000)
- 分位数值:
=INT(MOD(A1*10,10))
- 角位数值:
=INT(MOD(A1*10,10))
- 十万位数值:
=INT(MOD(A1,1000000)/100000)
- 百万位数值:
=INT(MOD(A1,10000000)/1000000)
- 千万位数值:
=INT(MOD(A1,100000000)/10000000)
这些公式将提取相应的位数数字,如果位数不存在,则返回0。
将数字转换为中文大写:
使用 TEXT
函数将提取的数字转换为中文大写格式。假设上述提取的数字分别放在B1到H1单元格中,你可以在相邻的单元格中使用以下公式将其转换为中文大写格式:
# 失败就返回 零
=IF(B1<>0, TEXT(B1, "[$-0804][DBNum2][$-804]0"), "零")
# 将以下X4 替换需要对应的金额值即可
#分位数值
=TEXT(IF(X4>=1, INT(MOD(X4*100, 10)), ""),"[DBNum2]")
#角位数值
=TEXT(IF(X4>=1, INT(MOD(X4*10, 10)), ""),"[DBNum2]")
# 个位
=TEXT(IF(X4>100,INT(MOD(X4,10)/1),0),"[DBNum2]")
# 十位
=TEXT(IF(X4>100,INT(MOD(X4,100)/10),0),"[DBNum2]")
#千位数值
=TEXT(IF(X4>100,INT(MOD(X4,10000)/1000),0),"[DBNum2]")
#万位数值
=TEXT(IF(X4>100,INT(MOD(X4,100000)/10000),0),"[DBNum2]")
#十万位数值
=TEXT(IF(X4>100,INT(MOD(X4,1000000)/100000),0),"[DBNum2]")
#百万位数值
=TEXT(IF(X4>100,INT(MOD(X4,10000000)/10000000),0),"[DBNum2]")
#千万位数值
=TEXT(IF(X4>100,INT(MOD(X4,100000000)/100000000),0),"[DBNum2]")
这个公式中的格式字符串 "[$-0804][DBNum2][$-804]0"
是用来将数字转换为中文大写的格式。