Excel incluye una función de hoja de trabajo que le permite convertir un número a números romanos. (Hmmm. Veamos …​ Nací en MCMLVI. ¡Diablos! ¡Soy un clásico!) La forma más sencilla de usar los números romanos es la siguiente:

=ROMAN(123)

Todo lo que necesita hacer, obviamente, es reemplazar 123 con el número que desea convertir. Puedes usar cualquier número entre 1 y 3999. (Parece que los romanos nunca trabajaron con números fuera de este rango).

También puede, si lo desea, usar un segundo argumento para indicar cómo se deben juntar los números romanos resultantes. Los diferentes argumentos que puede utilizar son del 0 al 4, siendo 0 el valor predeterminado. Un argumento de 0 devuelve números romanos en la forma clásica y 4 devuelve un número romano extremadamente simplificado. Los valores entre 0 y 4 devuelven versiones progresivamente más simplificadas. La simplificación de los números romanos normalmente solo entra en juego cuando se trata de números más grandes. Por ejemplo, a continuación se muestran los distintos niveles de simplificación del número 1999:

Formula

Result

=ROMAN(1999,0)

MCMXCIX

=ROMAN(1999,1)

MLMVLIV

=ROMAN(1999,2)

MXMIX

=ROMAN(1999,3)

MVMIV

=ROMAN(1999,4)

MIM

Debe tener en cuenta que la función ROMAN devuelve un valor de texto y, por lo tanto, no puede usar el resultado en ningún tipo de cálculo; en lo que respecta a Excel, ya no es un número.

Las versiones anteriores de Excel (incluido Excel 2003) no incluyen una función para convertir números romanos a números arábigos. Si desea utilizar un enfoque basado en fórmulas para realizar la conversión, puede intentar esto:

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

Esto supone que los números romanos están en la celda A1. Si lo prefiere, puede crear su propia función definida por el usuario para realizar la conversión al árabe:

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 es su fuente de formación rentable en Microsoft Excel.

Este consejo (1956) se aplica a Microsoft Excel 97, 2000, 2002 y 2003.