Si il est écrit CP alors je veux écrire le nom de l'employé

Résolu
Sorry_IP Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
luckydu43 Messages postés 4259 Date d'inscription   Statut Membre Dernière intervention   -

Bonjour,

Pour un planning, sur celui-ci il y a un tableau des congés et autres absences. Lorsqu'il est écrit CP devant le nom d'un employé, je voudrais que son nom s'affiche dans une cellule en en tete du planning. Et ainsi de suite pour l'ensemble des employés et dans la même cellule. 

J'ai utilisé la formule =SI(OU(NB(...);"*CP*";concatener; etc... 

La formule fonctionne sauf que tous les noms s'affiche alors qu'il y a un seul employé ou il est écrit CP devant son nom.

Si quelqu'un a une solution, je suis preneur.

Merci


Android / Chrome 130.0.0.0

6 réponses

luckydu43 Messages postés 4259 Date d'inscription   Statut Membre Dernière intervention   1 057
 

Bonsoir

Je me suis amusé avec Excel, il est bien possible de faire ce traitement.

=JOINDRE.TEXTE(", "; VRAI; SI(NON(ESTERREUR(CHERCHE("CP"; A2:A100))); SUBSTITUE(A2:A100; "CP"; ""); ""))
  • JOINDRE.TEXTE() se charge de la concaténation
  • CHERCHE() recherche la position de "CP" dans la cellule. Si il n'y a rien, au lieu de renvoyer une valeur (la position) elle renvoie une erreur
  • ESTERREUR() transforme l'erreur renvoyée par CHERCHE() dans le cas où elle ne renvoie rien par un VRAI
  • NON() inverse la logique. Ainsi, NON(ESTERREUR(CHERCHE())) renvoie VRAI si c'est présent sans avoir levé d'erreur et FAUX si une valeur n'a pas été trouvée en levant une erreur
  • SUBSTITUE() retire le CP de la chaîne pour simplifier l'affichage

Vérifiez bien qu'il ne faille pas étendre la recherche au-delà de A100 voire changer de colonne. Attention, il y a 4 références de cellules dans cette formule avec SUBSTITUE().


1
Sorry_IP Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 

Bonjour,

merci de votre retour. je vais essayer votre formule même si j'ai peur ne pas s'avoir l'appliquer.

Bonne journée.

0
luckydu43 Messages postés 4259 Date d'inscription   Statut Membre Dernière intervention   1 057 > Sorry_IP Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 

Elle ne marche pas dans votre cas, vous aviez mal énoncé le problème !

J'ai ici traité dans le cas où "CP" a été rajouté devant le nom dans la même cellule.

Je regarde ça plus tard pour faire une version adaptée, certainement simplifiée puisqu'il n'y aura plus à utiliser SUBSTITUE()

1
Sorry_IP Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   > luckydu43 Messages postés 4259 Date d'inscription   Statut Membre Dernière intervention  
 

Désolé, il est vrai que ce n'est pas forcément simple à expliquer quand on est novice intermédiaire.

0
luckydu43 Messages postés 4259 Date d'inscription   Statut Membre Dernière intervention   1 057
 

Bonjour,

En prenant en compte le fichier déposé au message 4, voici une formule qui traite bien le cas demandé en se limitant à la plage des données du fichier et en prenant en compte les cas d'erreur :

=JOINDRE.TEXTE(", ";VRAI;FILTRE(B21:B37;(G21:G37="CP")*(ESTTEXTE(B21:B37));""))

Comme prévu, la logique est un peu plus simple que celle de mon message précédent :

  • JOINDRE.TEXTE, comportement inchangé
  • FILTRE permet de faire le traitement de "si G contient CP"
  • ESTTEXTE est un blindage, des fois que certaines données de B dans la plage sélectionnée soient incohérentes

1
PapyLuc51 Messages postés 4519 Date d'inscription   Statut Membre Dernière intervention   1 486
 

Bonjour,

Pour y voir plus clair et donner une réponse adaptée il serait préférable de nous joindre un fichier exemple anonymisé.

Voir cette fiche

Cordialement

0
DjiDji59430 Messages postés 4253 Date d'inscription   Statut Membre Dernière intervention   700
 

ainsi que la version d'excel que tu utilises


Crdlmt

0
DjiDji59430 Messages postés 4253 Date d'inscription   Statut Membre Dernière intervention   700 > DjiDji59430 Messages postés 4253 Date d'inscription   Statut Membre Dernière intervention  
 

les gens ne savent pas lire !!!

0
Sorry_IP Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 

Bonjour,

je vous joint une capture écran du tableau anonymisé et de la formule écrite

qui pourra peut être facilité la compréhension de ma demande.

A ce jour si j'écris CP dans une seule case, tous les noms s'écrive dans la cellule alors que je ne veux que la personne concernée.

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
danielc0 Messages postés 1858 Date d'inscription   Statut Membre Dernière intervention   231
 

Bonjour à tous,

Avec cette disposition :

Avec Excel 2016 ou postérieure :

=GAUCHE(CONCAT(SI(G6:G24="cp";A6:A24&", ";""));NBCAR(CONCAT(SI(G6:G24="cp";A6:A24&", ";"")))-2)

Daniel

0
danielc0 Messages postés 1858 Date d'inscription   Statut Membre Dernière intervention   231
 

Sinon, avec Excel 365 :

=JOINDRE.TEXTE(", ";;FILTRE(A:A;G:G="cp"))

Daniel


0