XL 2019 (RESOLU) Choisir entre deux valeurs différentes dans une même cellule

Jinans

XLDnaute Nouveau
Bonjour tous le monde,

Je n'arrive pas à trouver la formule qui convient, je vous explique.
J'utilise la formule suivante dans la cellule R14 : =SI(R13>9;STXT(R13;1;1)+STXT(R13;2;1);"") qui fonctionne très bien.
Mais parfois et en fonction du résultat, la cellule R13, peut me renvoyer non pas deux chiffres, mais trois, ce qui me donne, =SI(R13>9;STXT(R13;1;1)+STXT(R13;2;1)+STXT(R13;3;1);""), jusque la tout va bien, comment faire pour avoir ces deux formules en condition.
Mais il faut que la cellule R14, me renvoi un résultat, que la cellule R13 affiche deux ou trois chiffres aléatoirement, j'avoue ne pas trouvé de quelle manière faire, je suis débutant, et je calle sur ce coup la, j'ai essayé avec la fonction OU, mais je maitrise pas.

En vous remerciant,
 

Jinans

XLDnaute Nouveau
Bonjour et merci pour votre réponse,

Le fichier en question est un programme complet, difficile de tout envoyé. La cellule R13 affiche le résultat de deux autres cellules, qui en fonction des données rentrées affiche un résultat a deux ou trois chiffres, je souhaite donc que la cellule R14 renvoi un résultat cohérent, si un coup deux chiffres sont affichés et si un autre coup trois chiffres sont affichés. Je ne sais pas si mes explications sont suffisantes.
 

soan

XLDnaute Barbatruc
Bonjour Jinans, vgendron,

La cellule R13 affiche le résultat de deux autres cellules, qui en fonction des données rentrées affiche un résultat a deux ou trois chiffres

bizarre ! si la cellule R13 n'affiche qu'un nombre de 2 ou 3 chiffres, alors la simple formule =R13 en R14 affiche le même nombre en R14, avec le même nombre de chiffres ; dès lors, pourquoi donc chercher à mettre une formule compliquée ? car s'il y a un nombre d'un seul chiffre en R13, il y aura un nombre d'un seul chiffre en R14 ; s'il y a un nombre de 2 chiffres en R13, il y aura un nombre de 2 chiffres en R14 ; s'il y a un nombre de 3 chiffres en R13, il y aura un nombre de 3 chiffres en R14.

mais si tu voulais toujours un nombre de 3 chiffres en R14, quelque soit le nombre de chiffres du nombre de R13, alors la formule de vgendron est tout à fait adéquate : =TEXTE(R13;"000")



d'autre part, note que :​

* pour ton "STXT(R13;1;1)+STXT(R13;2;1)", ceci est plus simple : STXT(R13;1;2) ; encore plus simple : GAUCHE(R13;2)

* pour ton "STXT(R13;1;1)+STXT(R13;2;1)+STXT(R13;3;1)", ceci est plus simple : STXT(R13;1;3) ; encore plus simple : GAUCHE(R13;3)

si besoin, tu peux variabiliser le 2ème argument de GAUCHE() ; éventuellement en utilisant la fonction NBCAR(). (c'est selon ce qu'il y a réellement en R13 ; peut-être y a-t-il un texte en plus à droite du nombre ? car s'il n'y a vraiment que le nombre et rien d'autre, =R13 suffit !)



pour pouvoir t'aider davantage, il faut que tu montres quelques exemples des résultats qui apparaissent en cellule R13, même si elle est le résultat de 2 autres cellules.

astuce : sélectionne R13 ; regarde la formule qui apparaît dans la barre de formule ; clique dessus, et appuie sur la touche F9 : ça va faire le calcul de la fonction, et l'afficher ; si tu voulais le garder tel que, tu devrais appuyer sur Entrée ; mais comme ce n'est pas le cas vu que tu veux garder la formule, sélectionne le résultat et fais Ctrl Ins (touche insertion) : ça fait un copier du résultat dans le presse-papiers de Windows ; aussitôt après, appuie sur la touche Echap : ça remet la formule de départ ; dans un post du forum, fais un coller du résultat que tu avais copié dans le presse-papiers.​

soan
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Bonjour le fil,

Telle que j'ai compris la formule, je propose celle-ci
=GAUCHE(R13)+DROITE(R13;NBCAR(R13)-1)

NB: Je ne comprends pas l'emploi de STXT pour faire des additions.


PS: Message posté sans avoir rafraichi la page, donc avoir lu le message de Soan.
 

soan

XLDnaute Barbatruc
Bonjour Staple, (même si je t'ai déjà dit Bonjour sur une autre discussion)

NB: Je ne comprends pas l'emploi de STXT pour faire des additions.

ah oui, c'est vrai : j'ai oublié de dire à Jinans que pour des concaténations de texte, on utilise plutôt le caractère « & » plutôt que le caractère « + », même si le résultat est en fait le même ; ça fait qu'au lieu de :​

STXT(R13;1;1)+STXT(R13;2;1)+STXT(R13;3;1)

ce serait plutôt :

STXT(R13;1;1)&STXT(R13;2;1)&STXT(R13;3;1)

ou pour une meilleure lisibilité de la formule :

STXT(R13;1;1) & STXT(R13;2;1) & STXT(R13;3;1)

ainsi, on utilise le caractère « + » plutôt pour des opérations arithmétiques ; mais c'est juste une histoire de conventions ; rien ne t'y oblige, et si tu préfères utiliser quand même le « + » pour des concaténations de texte, fais comme tu veux ! :)

soan
 

Jinans

XLDnaute Nouveau
Bonjour Jinans, vgendron,



bizarre ! si la cellule R13 n'affiche qu'un nombre de 2 ou 3 chiffres, alors la simple formule =R13 en R14 affiche le même nombre en R14, avec le même nombre de chiffres ; dès lors, pourquoi donc chercher à mettre une formule compliquée ? car s'il y a un nombre d'un seul chiffre en R13, il y aura un nombre d'un seul chiffre en R14 ; s'il y a un nombre de 2 chiffres en R13, il y aura un nombre de 2 chiffres en R14 ; s'il y a un nombre de 3 chiffres en R13, il y aura un nombre de 3 chiffres en R14.

mais si tu voulais toujours un nombre de 3 chiffres en R14, quelque soit le nombre de chiffres du nombre de R13, alors la formule de vgendron est tout à fait adéquate : =TEXTE(R13;"000")



d'autre part, note que :​

* pour ton "STXT(R13;1;1)+STXT(R13;2;1)", ceci est plus simple : STXT(R13;1;2) ; encore plus simple : GAUCHE(R13;2)

* pour ton "STXT(R13;1;1)+STXT(R13;2;1)+STXT(R13;3;1)", ceci est plus simple : STXT(R13;1;3) ; encore plus simple : GAUCHE(R13;3)

si besoin, tu peux variabiliser le 2ème argument de GAUCHE() ; éventuellement en utilisant la fonction NBCAR(). (c'est selon ce qu'il y a réellement en R13 ; peut-être y a-t-il un texte en plus à droite du nombre ? car s'il n'y a vraiment que le nombre et rien d'autre, =R13 suffit !)



pour pouvoir t'aider davantage, il faut que tu montres quelques exemples des résultats qui apparaissent en cellule R13, même si elle est le résultat de 2 autres cellules.

astuce : sélectionne R13 ; regarde la formule qui apparaît dans la barre de formule ; clique dessus, et appuie sur la touche F9 : ça va faire le calcul de la fonction, et l'afficher ; si tu voulais le garder tel que, tu devrais appuyer sur Entrée ; mais comme ce n'est pas le cas vu que tu veux garder la formule, sélectionne le résultat et fais Ctrl Ins (touche insertion) : ça fait un copier du résultat dans le presse-papiers de Windows ; aussitôt après, appuie sur la touche Echap : ça remet la formule de départ ; dans un post du forum, fais un coller du résultat que tu avais copié dans le presse-papiers.​

soan
Merci pour ton intervention Soan, je pense ne pas avoir été assez clair, et surtout j'ai compliqué mes explications .
Dans la cellule R13, parfois le résultat est à deux chiffres, et parfois il est à trois chiffres, il est donc aléatoire en fonction des informations rentrés en amont. je voudrais donc que la cellule R14, m'affiche un résultat en fonction de ce changement aléatoire.

Formule de la cellule R13 : =SOMME(R9:AH9)
Formule de la cellule R14 : =SI(R13>9;STXT(R13;1;1)+STXT(R13;2;1);"")

La somme de la cellule R13 fonctionne très bien jusqu'au nombre 99, et à partir de 100, le résultat de la cellule R14 est érroné (ce qui est normal), comment alors dois-je faire pour que R14 prenne en compte ce changement aléatoire, et me calculer le résultat correctement, j'espère avoir été plus clair cette fois-ci, merci.
 

Staple1600

XLDnaute Barbatruc
RE

soan
Ah oui, j'avais zappé le côté concaténation
Comme quoi on peut vite prendre de mauvaises habitudes dans Excel ;)
Quand j'étais en formation XL à IXELLES, on m'appris qu'on concatène avec & ou avec la formule idoine
Et qu'on réserve le + pour l'addition.
 

Staple1600

XLDnaute Barbatruc
Ca me rappelle des souvenirs ;)

NB: Préférez la formule simple de Modeste Geedee (en fin de fil)
 

soan

XLDnaute Barbatruc
@Staple1600

ajout : le fait d'utiliser le caractère « + » pour des opérations de concaténation de texte provient d'une raison historique ; car si je me rappelle bien, dans les versions du langage BASIC sous MSDOS (BASIC, BASICA, GWBASIC), on ne pouvait pas utiliser le caractère « & » ; je crois bien que c'est avec le VBA d'Excel qu'on a commencé à utiliser le « & » au lieu du « + » ; mais l'utilisation du « + » a été conservée pour ceux qui en avaient l'habitude. (pour un genre de compatibilité ascendante des habitudes ! 😄)

soan
 

Statistiques des forums

Discussions
297 848
Messages
1 963 743
Membres
200 185
dernier inscrit
mike54