Excel包含一个工作表功能,使您可以将数字转换为罗马数字。 (嗯。让我们看看……我出生于MCMLVI。当当!我是经典!)使用罗马数字的最简单方法如下:

=ROMAN(123)

显然,您所需要做的就是将123替换为您要转换的数字。您可以使用1到3999之间的任何数字。(罗马书显然从未使用此范围以外的数字。)

如果需要,还可以使用第二个参数来指示如何将结果罗马数字放在一起。您可以使用的不同参数是0到4,默认值为0。参数0返回经典形式的罗马数字,参数4返回极其简化的罗马数字。 0到4之间的值将逐步返回简化版本。罗马数字的简化通常仅在处理较大数字时才起作用。例如,以下显示数字1999的各种简化形式:

Formula

Result

=ROMAN(1999,0)

MCMXCIX

=ROMAN(1999,1)

MLMVLIV

=ROMAN(1999,2)

MXMIX

=ROMAN(1999,3)

MVMIV

=ROMAN(1999,4)

MIM

您应该注意,ROMAN函数返回一个文本值,因此您不能在任何类型的计算中使用结果-就Excel而言,它不再是数字。

较早版本的Excel(包括Excel 2003)不包含将罗马数字转换回阿拉伯数字的功能。如果要使用公式方法进行转换,则可以尝试以下操作:

=MATCH(A1,INDEX(ROMAN(ROW(INDIRECT("1:4000"))),0),0)

这假定罗马数字在单元格A1中。如果愿意,可以创建自己的用户定义函数来转换为阿拉伯语:

Public Function UnRoman(RomanNumber As String) As Integer     Dim MySum As Integer     Dim MyDeduct As Integer     Dim MyWord As String     Dim L As String     Dim WordLength As Integer     Dim i As Integer     Dim MyArray() As Integer

MySum = 0     MyDeduct = 0     MyWord = UCase(RomanNumber)

WordLength = Len(MyWord)

ReDim MyArray(WordLength + 1)



For i = 1 To WordLength         L = Mid(MyWord, i, 1)

MyArray(i) = Switch(L = "I", 1, L = "V", 5, _           L = "X", 10, L = "L", 50, L = "C", 100, _           L = "D", 500, L = "M", 1000)

MySum = MySum + MyArray(i)

Next     For i = 1 To WordLength - 1         If MyArray(i) < MyArray(i + 1) Then             MyDeduct = MyDeduct + MyArray(i)

End If     Next     'Now deduct twice the value of the subtraction numbers     UnRoman = MySum - 2 * MyDeduct End Function

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(1956)适用于Microsoft Excel 97、2000、2002和2003。