OVH Cloud OVH Cloud

intervertir le contenu d'une cellule

21 réponses
Avatar
Billymax
Intervertir 2 expressions =E0 l'int=E9rieur d'une cellule (pr mon cas, il
s'agit de "nom pr=E9nom", or moi je veux l'inverse), est-ce possible ?
Parce que j'ai une colonne enti=E8re =E0 changer comme =E7a !
Merci

10 réponses

1 2 3
Avatar
Billymax
Je n'ai pas réussi avec cette formule...
=STXT(A2;EQUIV(VRAI;CODE(STXT(A2;LIGNE(INDIRECT("1:"&NBCAR(A2)));1))>96;0 )-1;9^9)&""&GAUCHE(A2;EQUIV(VRAI;CODE(STXT(A2;LIGNE(INDIRECT("1:"&NBCAR(A2) ));1))>96;0)-3)


Cette formule matricielle, que tu as bien voulu rappeler, sert à invers er
le NOM et le Prénom, sous réserve (convention) que le NOM soit écri t en
majuscule
Elle est basé sur le code des caractères et se moque donc des n oms à
rallonge et de la position et du nombre d'espaces
Ex : en A1 :
DUPONT DE NEMOURS DE LA PLAYA Charles-Albert
donnera bien :
Charles-Albert DUPONT DE NEMOURS DE LA PLAYA

AV


Avatar
Billymax
Je n'ai pas réussi avec cette formule...
=STXT(A2;EQUIV(VRAI;CODE(STXT(A2;LIGNE(INDIRECT("1:"&NBCAR(A2)));1))>96;0 )-1;9^9)&""&GAUCHE(A2;EQUIV(VRAI;CODE(STXT(A2;LIGNE(INDIRECT("1:"&NBCAR(A2) ));1))>96;0)-3)


Cette formule matricielle, que tu as bien voulu rappeler, sert à invers er
le NOM et le Prénom, sous réserve (convention) que le NOM soit écri t en
majuscule
Elle est basé sur le code des caractères et se moque donc des n oms à
rallonge et de la position et du nombre d'espaces
Ex : en A1 :
DUPONT DE NEMOURS DE LA PLAYA Charles-Albert
donnera bien :
Charles-Albert DUPONT DE NEMOURS DE LA PLAYA

AV


Avatar
Billymax
Je n'ai pas réussi avec cette formule...
=STXT(A2;EQUIV(VRAI;CODE(STXT(A2;LIGNE(INDIRECT("1:"&NBCAR(A2)));1))>96;0 )-1;9^9)&""&GAUCHE(A2;EQUIV(VRAI;CODE(STXT(A2;LIGNE(INDIRECT("1:"&NBCAR(A2) ));1))>96;0)-3)


Cette formule matricielle, que tu as bien voulu rappeler, sert à invers er
le NOM et le Prénom, sous réserve (convention) que le NOM soit écri t en
majuscule
Elle est basé sur le code des caractères et se moque donc des n oms à
rallonge et de la position et du nombre d'espaces
Ex : en A1 :
DUPONT DE NEMOURS DE LA PLAYA Charles-Albert
donnera bien :
Charles-Albert DUPONT DE NEMOURS DE LA PLAYA

AV


Avatar
AV
Regarde là :
http://cjoint.com/?hFtgOZyBkq

AV
Avatar
Nicolas B.
Bonsoir AV,

Un peu plus court :

=STXT(REPT(B2&" ";2);
EQUIV(VRAI;CODE(STXT(B2;LIGNE(INDIRECT("1:"&NBCAR(B2)));1))>96;0)-1;NBCAR(B2))

(matricielle)


A+
Nicolas B.

Regarde là :
http://cjoint.com/?hFtgOZyBkq

AV




Avatar
Billymax
Merci les gars (ou le gars, la fille ?) !

Ms ni l'une ni l'autre ne fonctionne. Celle de AV met valeur et celle
de Nicolas recopie en fait ce qui est marqué... Pourtant, promis, les
noms st en majuscules, j'ai fait Alt+Maj+Entrée...

Sinon, une petite question, comment savez-vs que j'ai écrit un nv msg
si je ne vs l'envoie pas ?


Bonsoir AV,

Un peu plus court :

=STXT(REPT(B2&" ";2);
EQUIV(VRAI;CODE(STXT(B2;LIGNE(INDIRECT("1:"&NBCAR(B2)));1))>96;0)-1;NBCAR (B2))

(matricielle)


A+
Nicolas B.

Regarde là :
http://cjoint.com/?hFtgOZyBkq

AV






Avatar
Nicolas B.
Salut,

Les deux formules données sont faites pour inverser nom et prénom
lorsque le nom est en premier dans la cellule ("DUPONT Jean").

Si les prénoms sont en premier ("Jean DUPONT"), la formule est différente :
=STXT(REPT(B2&" ";2);NBCAR(B2)
-EQUIV(VRAI;CODE(STXT(B2;NBCAR(B2)+1-LIGNE(INDIRECT("1:"&NBCAR(B2)));1))>96;0)+3;NBCAR(B2))
(matricielle)

Elle ne marche pas pour des prénoms d'une seule lettre.


A+
Nicolas B.

Merci les gars (ou le gars, la fille ?) !

Ms ni l'une ni l'autre ne fonctionne. Celle de AV met valeur et celle
de Nicolas recopie en fait ce qui est marqué... Pourtant, promis, les
noms st en majuscules, j'ai fait Alt+Maj+Entrée...

Sinon, une petite question, comment savez-vs que j'ai écrit un nv msg
si je ne vs l'envoie pas ?


Bonsoir AV,

Un peu plus court :

=STXT(REPT(B2&" ";2);
EQUIV(VRAI;CODE(STXT(B2;LIGNE(INDIRECT("1:"&NBCAR(B2)));1))>96;0)-1;NBCAR(B2))

(matricielle)


A+
Nicolas B.

Regarde là :
http://cjoint.com/?hFtgOZyBkq

AV









Avatar
Billymax
Eurêka !

Bon, je n'ai pas cherché à comprendre la formule ms le "96"
m'intrigue, je ne comprends pas ce qu'un 96 vient faire ici...

Merci


Salut,

Les deux formules données sont faites pour inverser nom et prénom
lorsque le nom est en premier dans la cellule ("DUPONT Jean").

Si les prénoms sont en premier ("Jean DUPONT"), la formule est différ ente :
=STXT(REPT(B2&" ";2);NBCAR(B2)
-EQUIV(VRAI;CODE(STXT(B2;NBCAR(B2)+1-LIGNE(INDIRECT("1:"&NBCAR(B2)));1))> 96;0)+3;NBCAR(B2))
(matricielle)

Elle ne marche pas pour des prénoms d'une seule lettre.


A+
Nicolas B.

Merci les gars (ou le gars, la fille ?) !

Ms ni l'une ni l'autre ne fonctionne. Celle de AV met valeur et celle
de Nicolas recopie en fait ce qui est marqué... Pourtant, promis, les
noms st en majuscules, j'ai fait Alt+Maj+Entrée...

Sinon, une petite question, comment savez-vs que j'ai écrit un nv msg
si je ne vs l'envoie pas ?


Bonsoir AV,

Un peu plus court :

=STXT(REPT(B2&" ";2);
EQUIV(VRAI;CODE(STXT(B2;LIGNE(INDIRECT("1:"&NBCAR(B2)));1))>96;0)-1;NB CAR(B2))

(matricielle)


A+
Nicolas B.

Regarde là :
http://cjoint.com/?hFtgOZyBkq

AV











Avatar
Billymax
Eurêka !

Bon, je n'ai pas cherché à comprendre la formule ms le "96"
m'intrigue, je ne comprends pas ce qu'un 96 vient faire ici...

Merci


Salut,

Les deux formules données sont faites pour inverser nom et prénom
lorsque le nom est en premier dans la cellule ("DUPONT Jean").

Si les prénoms sont en premier ("Jean DUPONT"), la formule est différ ente :
=STXT(REPT(B2&" ";2);NBCAR(B2)
-EQUIV(VRAI;CODE(STXT(B2;NBCAR(B2)+1-LIGNE(INDIRECT("1:"&NBCAR(B2)));1))> 96;0)+3;NBCAR(B2))
(matricielle)

Elle ne marche pas pour des prénoms d'une seule lettre.


A+
Nicolas B.

Merci les gars (ou le gars, la fille ?) !

Ms ni l'une ni l'autre ne fonctionne. Celle de AV met valeur et celle
de Nicolas recopie en fait ce qui est marqué... Pourtant, promis, les
noms st en majuscules, j'ai fait Alt+Maj+Entrée...

Sinon, une petite question, comment savez-vs que j'ai écrit un nv msg
si je ne vs l'envoie pas ?


Bonsoir AV,

Un peu plus court :

=STXT(REPT(B2&" ";2);
EQUIV(VRAI;CODE(STXT(B2;LIGNE(INDIRECT("1:"&NBCAR(B2)));1))>96;0)-1;NB CAR(B2))

(matricielle)


A+
Nicolas B.

Regarde là :
http://cjoint.com/?hFtgOZyBkq

AV











Avatar
Nicolas B.
Dans la formule, on compare 96 avec le résultat de la fonction CODE(...).
CODE renvoie pour un caractère donné son numéro dans la table ASCII. Les
lettres majuscules sont ainsi codées de 65 ("A") à 90 ("Z"), les
minuscules de 97 ("a") à 122 ("z"). Or, la dernière formule teste la
dernière apparition d'une minuscule dans la chaine de caractères. Il
faut donc tester si le code du caractère est supérieur à 96 (91
marcherait aussi : il est entre 90 et 96).

En réalité c'est un petit peu plus compliqué car il faut aussi prendre
en compte les codes des caractères accentués (code > 122), des espaces
et des traits-d'union (code < 65) qui peuvent apparaitre dans les noms
et prénoms. En particulier, les trois formules données ne marchent pas
avec les majuscules accentuées.


A+
Nicolas B.

Eurêka !

Bon, je n'ai pas cherché à comprendre la formule ms le "96"
m'intrigue, je ne comprends pas ce qu'un 96 vient faire ici...

Merci


Salut,

Les deux formules données sont faites pour inverser nom et prénom
lorsque le nom est en premier dans la cellule ("DUPONT Jean").

Si les prénoms sont en premier ("Jean DUPONT"), la formule est différente :
=STXT(REPT(B2&" ";2);NBCAR(B2)
-EQUIV(VRAI;CODE(STXT(B2;NBCAR(B2)+1-LIGNE(INDIRECT("1:"&NBCAR(B2)));1))>96;0)+3;NBCAR(B2))
(matricielle)

Elle ne marche pas pour des prénoms d'une seule lettre.


A+
Nicolas B.




1 2 3