Excel-将阿拉伯数字转换为罗马数字
刷leetcode题目的时候,遇到了一个转换罗马数字的题目,程序写出来,发现不知道计算的结果对不对。今天偶然间发现Excel可以将阿拉伯数字转为罗马数字,不得不佩服Excel功能强大。
罗马数字有I, V, X, L, C, D, M七个,依次表示数值:1, 5, 10, 50, 100, 500, 1000。罗马数字表示数字有如下几个规则,更详细的规则见参考资料【1】:
(1)相同的数字并列,表示相加。
(2)不同的数字并列,右边的小于左边的,表示相加。
(3)不同的数字并列,右边的大于左边的,表示相减。
(4)数字上加一横线,表示一千倍。
通过规则排列组合,就可以把所有的数字表示出来了。
而在Excel中将数字转换为罗马数字很简单,只需要用到函数ROMAN()。
在Excel中输入阿拉伯数字,例如在D6输入1,E6输入=ROMAN(E6),回车,就可以将阿拉伯数字1转换为罗马数字I。

注意的是,我们从上图可以看出当数字大于3999的时候,转换罗马数字失败,显示#VALUE!,这是因为Excel所能表示的罗马数字最大是3999。查看ROMAN()函数的说明文档,语法如下:

帮助文档里特别说明,如果number为负数或者大于3999,则#VALUE!,表示错误值。

那如果想表示3999以上的数值怎么办?可以自己根据规则手动计算,详细的规则可以参考资料【1】;也可以找罗马数字转换器,参考资料【2】,但是表示的范围是1—4999,比Excel大了1000。
参考资料:
【1】 罗马数字: http://www.fhdq.net/yy/78.html
【2】罗马数字转换器:https://www.luomashuzi.com/