欢迎大家来到IT世界,在知识的湖畔探索吧!
00
前言
我们将使用两个汉字完成从“一一得一”到“九九八十一”的九九口诀。
01
以“三七二十一”为例
如果公式能把数字等式【3*7=21】变为汉字【三七二十一】,我们几乎可以不使用汉字了。
我们再简化一下,如果【3】能变成【三】,那么【7】也可以,作为【3】和【7】乘积的【21】也可以。
02
数字【3】变为汉字【三】
①单元格内容【3】,⑤数字格式选⑥特殊⑦中文小写数字,⑧示例(预览)为【三】。
确定后,②单元格显示为【三】。
再次设置①数字格式,选择②自定义,可以看到该显示的③格式代码【[DBNum1][$-zh-CN]G/通用格式】(我使用的Excel为365版,”[DBNum1][$-804]G/通用格式“则能适用13及更低版本,下文将用804代码)。
03
得到那个【三】
获得单元格显示的文本,我们用函数TEXT(value,format_text),把【[DBNum1][$-804]G/通用格式】作为TEXT函数format_text参数的值。
=TEXT(D2,”[DBNum1][$-804]G/通用格式”)
我们看到单元格的数字格式为①常规,这里的②【三】是计算出来的。
我们也可以选中公式,按【F9】计算出结果,验证一下。
04
用【37】计算出【三七】
解决了数字转汉字的问题,将TEXT函数分别在被乘数、乘数和积各自用一遍就可以了。
书写的【3*7=21】,变成口诀时,乘【*】被省略了,等于【=】也被省略了,九九口诀限定了被乘数和乘数都为一位数,约定省略并不会造成混乱。
如果我们可以把【37】变为【三七】而不是【三十七】,即不显示数位【十】,被乘数和乘数可以合二为一,进一步简化公式。
【[DBNum1][$-804]0】相较于【[DBNum1][$-804]G/通用格式】,不显示数位。
公式【TEXT(37,”[DBNum1][$-804]0″)】的结果为【三七】。
乘法结果【21】公式表示为【3*7】
乘法过程【37】公式表示为【3&7】
仅相差一个字符,相较于【21】的公式,【37】的公式只需稍作修改。
这里还需注意,【3&7】为文本型数值,需乘1转为数值,即【3&7*1】.
05
81个把”21″
被乘数1-9需要分别与乘数1-9相乘,获得81个结果。
我们拉一个的辅助行列,构建9*9区域
在①被乘数所在列与②乘数所在行③交叉的单元格录入④公式
=D1*A8
为保证上下复制公式时,被乘数引用行不变,我们用【$】固定住引用行号,D1修改为D$1.
同理,A8修改为$A8,固定住乘数引用列标。
将公式复制粘贴到81格的区域内。
06
剪除重复的部分
【一二得二】和【二一得二】是重复的,我们发现,不显示的部分,被乘数大于乘数。我们用IF函数将重复的部分显示为空文本,将区域“修剪”为台阶形状。
修改【一一得一】格的公式为
=IF(B$1>$A2,””,B$1*$A2)
复制至81格区域。
07
结果数字转为汉字
【B$1*$A2】修改为【TEXT(B$1*$A2,”[DBNum1][$-804]G/通用格式”)】
08
过程汉字
稍作修改,得到过程汉字【TEXT(B$1&$A2*1,”[DBNum1][$-804]0“)】,与汉字结果拼接。
09
【得一】出场
在口诀中,乘法结果小于10的,乘法过程与结果中间需加【得】字。
=IF(B$1*$A2<10,”得”,””)
乘法结果在11-19的,不读十位上的数值,如我们习惯读【二六十二】而不是【二六一十二】。
日期【2022-2-13】通过格式【[DBNum1][$-804]yyyy年m月d日】显示为【二○二二年二月十三日】,不显示【一】。日期【1900-1-11】至【1900-1-19】可用【11】至【19】表示,可通过格式【[DBNum1][$-804]d】,显示为【十一】至【十九】,11-19的问题解决,但是32为日期【1900-2-1】,【d】为【1】,我们利用TEXT的参数兼具数字分段的功能。
=TEXT(B$1*$A2,”[<20][DBNum1][$-804]d;[DBNum1][$-804]G/通用格式”)
可是,【二五一十】又变成【二五十】,用IF补充【一】。
=IF(B$1*$A2=10,”一”,””)
至此,我们使用了【得】和【一】两个汉字。
当然,利用TEXT分段的特点,也可以不额外添加【二五一十】的【一】。
=IF(B$1>$A2,””,TEXT(B$1&$A2*1,”[DBNum1][$-804]0″)&IF(B$1*$A2<10,”得”,””)&TEXT(B$1*$A2,”[>19][DBNum1][$-804]G/通用格式;[<11][DBNum1][$-804]G/通用格式;[DBNum1][$-804]d”))
10
意外的【通用格式】
你也许发现了,我明明多使用了【通用格式】四个字,却没说,这四个字也可以省去。
将应用【Office 语言首选项】或操作系统的【时间和语言】,修改为【英语】。【G/通用格式】可用【General】替代。
软件虽然会根据不同的显示语言自动调整格式代码,但当格式代码被使用在TEXT函数中,调整将失灵。
11
区分数字与文本
我们要对台阶进行框线和填充色设置,但选中并不方便。
被剪除的部分为空文本,为方便定位,我们将它设置为0.
=IF(B$1>$A2,0,TEXT(B$1&$A2*1,”[DBNum1][$-804]0″)&IF(B$1*$A2<10,”得”,””)&IF(B$1*$A2=10,”一”,””)&TEXT(B$1*$A2,”[<20][DBNum1][$-804]d;[DBNum1][$-804]G/通用格式”))
再通过数字格式【;;;@】,将数值显示为空。
【F5】定位①公式就可以区分②数字和③文本。
12
画线填色
边框的样式和颜色是在画之前设置,设置填充色和字体颜色。
示例文件:https://pan.baidu.com/s/18UGS5Vv4K8HsulyRJmrMVQ?pwd=ez01
欢迎点赞-转发-关注,我们下次见。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/43238.html