Traduire un môt en chiffre

Résolu/Fermé
jps.forum - 7 déc. 2009 à 15:59
 jps.forum - 9 déc. 2009 à 19:58
Bonjour
Comment lire un nom dans une cellule, en prenant chaque lettre une à une , et attribuer dans une autre cellule un nombre numérique ( chaque chiffre correspond a une lettre )
Exemple: en C17 j'ai BILLARD le résultat en C18 est 1455172
Critère de correspondance des lettres / chiffres:
A ou B = 1
C " D = 2
E"F = 3
G"H"I = 4
J"K"L = 5
M"N"O = 6
P"Q"R = 7
S"T = 8
U"V"W = 9
X"Y"Z = 0
J'arrive à faire la correspondance avec une seule lettre par cellule.
Merci de votre aide
A voir également:

4 réponses

pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 643
7 déc. 2009 à 17:18
Bonjour,

Une solution un peu "simpliste" à partir de la fonction SUBSTITUE. Un exemple ici :

http://www.cijoint.fr/cjlink.php?file=cj200912/cijKyb1bxP.xls

Il faut afficher les colonnes masquées pour comprendre le fonctionnement.

Il y a peut-être une solution matricielle mais je n'ai pas trouvé

A+

EDIT : il y a des macros dans mon exemple, ne pas en tenir compte, elles ne servent pas se sont des résidus d'essais...
0
Merci pour la réponse mais je n'arrive pas a ouvrir ton exemple.
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
8 déc. 2009 à 17:22
Bonjour et merci,

je n'ai toujours pas trouvé comment concaténer en matriciel sans passer par MCONCAT.
Je ne crois pas que Morefunc soit porté sur 2007. Donc ça peut devenir problématique.

En plus, le comportement de certaines fonctions est "conflictuel ou curieux" en matriciel. C'est pour cela que je me suis rabattu sur CHOISIR().
Par exemple, =SOMMEPROD((INDEX($B$1:$B$26;CODE(STXT($F$2;LIGNE(INDIRECT("1:"&NBCAR(DROITE($F$2;15))));1))-64))*(10^(NBCAR(DROITE($F$2;15))-LIGNE(INDIRECT("1:"&NBCAR(DROITE($F$2;15))))))) qui fournit une solution a priori équivalente à la 1ère proposition en s'appuyant sur une table de transcodage en A1:B26, ne fonctionne pas lorsque cette formule est dans une seule cellule. En revanche, si on l'inscrit dans une matrice d'au moins 2 cellules, elle fonctionne et répète le bon résultat dans chaque cellule.
Pour moi c'est une énigme.

cordialement
0
Bonsoir a vous tous

Merci de vos réponses, j'ai également ouvert une autre discutions sur un autre forum
je vous invite a regarder les réponses sur le lien ci-dessous.
La communauté d'entre-aide est vraiment fabuleuse!!!!!!
Encore merci d'avoir participé a cette discutions


http://www.veriti.net/forum2/viewtopic.php?f=1&t=2447&p=16218#p16218
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
8 déc. 2009 à 03:07
Bonsoir,

si le mot à convertir est en F2 et en MAJUSCULES :

1ère proposition : (limitée à 15 caractères pour cause de conversion numérique)
=SOMMEPROD(CHOISIR(CODE(STXT($F$2;LIGNE(INDIRECT("1:"&NBCAR($F$2)));1))-64;1;1;2;2;3;3;4;4;4;5;5;5;6;6;6;7;7;7;8;8;9;9;9;0;0;0)*(10^(NBCAR($F$2)-LIGNE(INDIRECT("1:"&NBCAR($F$2))))))
validation par CTRL+MAJ+ENTER

2ème proposition : (limitée à 255 caractères)
utiliser la fonction MCONCAT de la bibliothèque MOREFUNC de Laurent Longre.
=MCONCAT(CHOISIR(CODE(STXT($F$2;LIGNE(INDIRECT("1:"&NBCAR($F$2)));1))-64;1;1;2;2;3;3;4;4;4;5;5;5;6;6;6;7;7;7;8;8;9;9;9;0;0;0))
validation par CTRL+MAJ+ENTER

3ème proposition : (limitée à 30 caractères, numérique "amélioré")
=SI(ET(NBCAR($F$2)>15;NBCAR($F$2)<30);SOMMEPROD(CHOISIR(CODE(STXT(GAUCHE($F$2;NBCAR($F$2)-15);LIGNE(INDIRECT("1:"&NBCAR($F$2)-15));1))-64;1;1;2;2;3;3;4;4;4;5;5;5;6;6;6;7;7;7;8;8;9;9;9;0;0;0)*(10^(NBCAR($F$2)-15-LIGNE(INDIRECT("1:"&NBCAR($F$2)-15)))))&"";"")&SOMMEPROD(CHOISIR(CODE(STXT(DROITE($F$2;15);LIGNE(INDIRECT("1:"&NBCAR(DROITE($F$2;15))));1))-64;1;1;2;2;3;3;4;4;4;5;5;5;6;6;6;7;7;7;8;8;9;9;9;0;0;0)*(10^(NBCAR(DROITE($F$2;15))-LIGNE(INDIRECT("1:"&NBCAR(DROITE($F$2;15)))))))&""
ation par CTRL+MAJ+ENTER

En dehors des formules, il y a toutes les possibilités de VBA.

cordialement
-1
pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 643
8 déc. 2009 à 14:26
Bravo,

Magnifique solution matricielle j'avais séché sur le sujet ....

A+
0