Chiffres romains

Tibo

XLDnaute Barbatruc
Rebonjour à tous,

Je viens de poster sur un autre fil une méthode pour inverser les lettres d'un mot :

Lien supprimé

Je me suis servi de cette méthode pour transcrire des chiffres romains.

Je suis parti du principe qu'il était plus facile d'analyser une chaîne de caractère de gauche à droite plutôt que de droite à gauche.

Pour analyser les chifffres romains, il me fallait donc inverser la chaine de lettres.

Le principe passe également par la construction d'une matrice via une formule nommée. Cette matrice étant ensuite exploitée par un INDEX.

r = le chiffre romain à transcrire

rm=CHOISIR(EQUIV(STXT(r;NBCAR(r)+1-LIGNE(INDIRECT(1&':'&NBCAR(r)));1);{'I';'V';'X';'L';'C';'D';'M'};0);1;5;10;50;100;500;1000)

la formule avec INDEX :

=SI(NBCAR(r)>0;INDEX(rm;1);)
+SI(NBCAR(r)>1;INDEX(rm;2)*SI(INDEX(rm;2)>=INDEX(rm;1);1;-1);)
+SI(NBCAR(r)>2;INDEX(rm;3)*SI(INDEX(rm;3)>=INDEX(rm;2);1;-1);)
+SI(NBCAR(r)>3;INDEX(rm;4)*SI(INDEX(rm;4)>=INDEX(rm;3);1;-1);)
+SI(NBCAR(r)>4;INDEX(rm;5)*SI(INDEX(rm;5)>=INDEX(rm;4);1;-1);)
+SI(NBCAR(r)>5;INDEX(rm;6)*SI(INDEX(rm;6)>=INDEX(rm;5);1;-1);)
+SI(NBCAR(r)>6;INDEX(rm;7)*SI(INDEX(rm;7)>=INDEX(rm;6);1;-1);)
+SI(NBCAR(r)>7;INDEX(rm;8)*SI(INDEX(rm;8)>=INDEX(rm;7);1;-1);)
+SI(NBCAR(r)>8;INDEX(rm;9)*SI(INDEX(rm;9)>=INDEX(rm;8);1;-1);)
+SI(NBCAR(r)>9;INDEX(rm;10)*SI(INDEX(rm;10)>=INDEX(rm;9);1;-1);)
+SI(NBCAR(r)>10;INDEX(rm;11)*SI(INDEX(rm;11)>=INDEX(rm;10);1;-1);)
+SI(NBCAR(r)>11;INDEX(rm;12)*SI(INDEX(rm;12)>=INDEX(rm;11);1;-1);)
+SI(NBCAR(r)>12;INDEX(rm;13)*SI(INDEX(rm;13)>=INDEX(rm;12);1;-1);)
+SI(NBCAR(r)>13;INDEX(rm;14)*SI(INDEX(rm;14)>=INDEX(rm;13);1;-1);)
+SI(NBCAR(r)>14;INDEX(rm;15)*SI(INDEX(rm;15)>=INDEX(rm;14);1;-1);)
+SI(NBCAR(r)>15;INDEX(rm;16)*SI(INDEX(rm;16)>=INDEX(rm;15);1;-1);)

Le plus long chiffre romain que la formule puisse transcrire est 5888.

Compte tenu du fait qu'il s'agit généralement d'années, cela devrait permettre d'utiliser cette formule pendant quelque temps (en attendant que Billou augmente la taille maxi des formules)

Bon dimanche à tous

P.S. : là aussi, remplacer les ;) par ; ) (sans l'espace). Ah satanés smileys...


[file name=_transcription_chiffre_romain.zip size=2576]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/_transcription_chiffre_romain.zip[/file]

Message édité par: tibo, à: 04/09/2005 10:30
 

Pièces jointes

  • _transcription_chiffre_romain.zip
    2.5 KB · Affichages: 41
  • _transcription_chiffre_romain.zip
    2.5 KB · Affichages: 43
  • _transcription_chiffre_romain.zip
    2.5 KB · Affichages: 39

deudecos

XLDnaute Impliqué
Bonjour Tibo, le forum,

Meme avec tout ce temps, je serais tres etonne que Bilou pense a faire quelque chose pour nous (sauf pour nous vendre une nouvelle mouture 'extra sure' et qui plante a la premiere occasion... :eek:

Mais la n'est pas le propos, En tout cas, tres interessant ce projet, je le garde sous la main.

Merci Tibo

Bonne journee

Olivier
 

Discussions similaires

Réponses
5
Affichages
271
Réponses
22
Affichages
897

Statistiques des forums

Discussions
312 514
Messages
2 089 210
Membres
104 066
dernier inscrit
il matador