Enchainer deux formules dans la meme cellule, possible ?
Résolu
Remaurd
Messages postés
6
Statut
Membre
-
Raymond PENTIER Messages postés 58216 Date d'inscription Statut Contributeur Dernière intervention -
Raymond PENTIER Messages postés 58216 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
je souhaiterais enchainer deux fonctions pour une meme cellule, est ce possible ?
si oui par quel biais?
je vous donne l'exemple concret :
dans une suite de cellules (colonne) j'ai :
bifolius R. Br., Prodr. Fl. Nov. Holland.: 322 (1810).
amplexicaulis (F.M.Bailey) Rolfe, Orchid Rev. 11: 344
je voudrais extraire tout ce qui est à droite du premier mot à gauche (ce que j'ai mis en gras)
et
le limiter à ce qui est à gauche de la virgule.
en clair je souhaite extraire le (ou les) noms qui se trouvent à partir de la 2eme position et placés avant la virgule.
j'ai deux formules :
extraire tout ce qui est a droite du premier mot.
=SIERREUR(DROITE(A1;(NBCAR(A1)-(NBCAR(GAUCHE(A1;CHERCHE(" ";A1;1)-1))+1)));"")
et
extraire tout ce qui est a Gauche d'un caractère :
=SIERREUR(GAUCHE(A1;CHERCHE(",";A1)-1);"")
Merci,
Cordialement, YR.
comment faire pour réaliser cette operation en une seule fois ?
je souhaiterais enchainer deux fonctions pour une meme cellule, est ce possible ?
si oui par quel biais?
je vous donne l'exemple concret :
dans une suite de cellules (colonne) j'ai :
bifolius R. Br., Prodr. Fl. Nov. Holland.: 322 (1810).
amplexicaulis (F.M.Bailey) Rolfe, Orchid Rev. 11: 344
je voudrais extraire tout ce qui est à droite du premier mot à gauche (ce que j'ai mis en gras)
et
le limiter à ce qui est à gauche de la virgule.
en clair je souhaite extraire le (ou les) noms qui se trouvent à partir de la 2eme position et placés avant la virgule.
j'ai deux formules :
extraire tout ce qui est a droite du premier mot.
=SIERREUR(DROITE(A1;(NBCAR(A1)-(NBCAR(GAUCHE(A1;CHERCHE(" ";A1;1)-1))+1)));"")
et
extraire tout ce qui est a Gauche d'un caractère :
=SIERREUR(GAUCHE(A1;CHERCHE(",";A1)-1);"")
Merci,
Cordialement, YR.
comment faire pour réaliser cette operation en une seule fois ?
3 réponses
-
Bonjour.
ça ressemblerait donc à
=SIERREUR(DROITE(SIERREUR(GAUCHE(A1;CHERCHE(",";A1)-1);"");(NBCAR(SIERREUR(GAUCHE(A1;CHERCHE(",";A1)-1);""))-(NBCAR(GAUCHE(SIERREUR(GAUCHE(A1;CHERCHE(",";A1)-1);"");CHERCHE(" ";SIERREUR(GAUCHE(A1;CHERCHE(",";A1)-1);"");1)-1))+1)));"")
ce qui n'est pas très pratique !
Il vaut mieux le faire en 2 temps (et 2 colonnes) ...
-
Merci Raymond pour ta réponse et pour l'attention que tu as porté a ma demande.
Malheureusement c'est ce que je fais déjà (deux opérations successives et en deux colonnes).
Cordialement,- Pourquoi "malheureusement" ?
Je fais couramment cela : utiliser une colonne supplémentaire (ou plusieurs) pour effectuer les calculs intermédiaires !
On peut placer cette colonne de travail loin à droite (hors de la zone d'impression), ou dans une autre feuille ; moi, je me contente de la masquer.
Ce n'est pas honteux du tout. C'est une méthode de travail comme une autre. - Oui je suis excessif dans mon vocabulaire, tu as raison, ce que je veux dire c’est que ça m'occasionne des opérations supplémentaires que je cherchais a simplifier, ce qui est le but de ma demande, car effectivement je travaille sur plusieurs colonnes en faisant des étapes intermédiaires.
en parlant d’étapes intermédiaires, as-tu une astuce pour remplacer directement le contenu d'une cellule par sa valeur ? (style touche de raccourci clavier ou autre) car en permanence je suis obligé de :
- sélectionner la colonne,
- puis cliquer sur copier,
- puis coller spécial,
- puis sélectionner "valeurs"
- et enfin valider
ce qui est fastidieux a la longue... pour une seule opération.
-
Ceci dit, je me suis concentré sur ta question "comment faire pour réaliser cette operation en une seule fois ?", sans chercher à proposer une autre approche avec d'autres fonctions, comme Vaucluse (que je salue) l'a remarquablement bien fait.
La formule de Vaucluse te donne comme résultatsR. Br.,
et(F.M.Bailey) Rolfe,
. Si tu ne veux pas la virgule finale, il te suffit de faire une très légère adaptation en écrivant :=STXT(A1;TROUVE(" ";A1)+1;TROUVE(",";A1)-TROUVE(" ";A1) -1 )...
Cordialement.
-