Excel comprend une fonction de feuille de calcul qui vous permet de convertir un nombre en chiffres romains. (Hmmm. Voyons voir …​ Je suis né à MCMLVI. Dang! Je suis un classique!) La façon la plus simple d’utiliser les chiffres romains est la suivante:

=ROMAN(123)

Tout ce que vous avez à faire, évidemment, est de remplacer 123 par le nombre que vous souhaitez convertir. Vous pouvez utiliser n’importe quel nombre entre 1 et 3999. (Les Romains n’ont apparemment jamais travaillé avec des nombres en dehors de cette plage.)

Vous pouvez également, si vous le souhaitez, utiliser un deuxième argument pour indiquer comment les chiffres romains résultants doivent être assemblés. Les différents arguments que vous pouvez utiliser vont de 0 à 4, 0 étant la valeur par défaut. Un argument de 0 renvoie des chiffres romains sous la forme classique, et 4 renvoie un chiffre romain extrêmement simplifié. Les valeurs comprises entre 0 et 4 renvoient progressivement des versions plus simplifiées. La simplification des chiffres romains n’entre généralement en jeu que lorsqu’il s’agit de nombres plus grands. Par exemple, le tableau suivant montre les différents niveaux de simplification du numéro 1999:

Formula

Result

=ROMAN(1999,0)

MCMXCIX

=ROMAN(1999,1)

MLMVLIV

=ROMAN(1999,2)

MXMIX

=ROMAN(1999,3)

MVMIV

=ROMAN(1999,4)

MIM

Vous devez noter que la fonction ROMAN renvoie une valeur de texte et que vous ne pouvez donc pas utiliser le résultat dans aucun type de calcul – en ce qui concerne Excel, ce n’est plus un nombre.

Les anciennes versions d’Excel (y compris Excel 2003) n’incluent pas de fonction permettant de reconvertir les chiffres romains en nombres arabes. Si vous souhaitez utiliser une approche formule pour effectuer la conversion, vous pouvez essayer ceci:

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

Cela suppose que les chiffres romains sont dans la cellule A1. Si vous préférez, vous pouvez créer votre propre fonction définie par l’utilisateur pour effectuer la conversion en arabe:

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 est votre source pour une formation Microsoft Excel rentable.

Cette astuce (1956) s’applique à Microsoft Excel 97, 2000, 2002 et 2003.