1 votes

Excel : Utilisation d'instructions IF imbriquées contenant des caractères génériques

Je travaille actuellement sur un projet où je dispose d'une liste de visites de patients dans une clinique. Chaque patient se voit attribuer un fournisseur de soins primaires, mais ce n'est pas toujours le fournisseur qui rend les services lors d'une visite donnée. Ma tâche est de voir combien de visites à la clinique le patient a effectivement vu son PCP. J'ai en fait résolu ce problème sur ce site il y a quelques jours et j'ai pu utiliser une instruction IF dans Excel pour déterminer tout cela.

(Remarque : compte tenu de la manière dont les données sont extraites de la base de données, le champ PCP contient le nom complet du prestataire et ses références, tandis que le champ Rendu ne contient que le nom de famille).

=IF(COUNTIF([@PCP],"*"&[@Rendering]&"*")>0,"YES","")

Il fonctionne parfaitement. Le problème, c'est que j'ai appris qu'il y avait une nouvelle particularité : comme les prestataires de la clinique travaillent en équipe, on dit qu'un patient a vu son PCP s'il a eu sa visite avec un membre de l'équipe de ce PCP. Je ne peux donc plus simplement comparer les champs PCP et Rendu dans ma liste Excel.

Je sais ce qu'il faut faire, mais je ne sais pas comment le faire. Toutes les tentatives effectuées jusqu'à présent se sont soldées par des erreurs de syntaxe Excel non spécifiques.

Je vais essayer de l'organiser un peu mieux pour tout le monde. Disons qu'il y a deux équipes de trois prestataires.

Smith, John MD         Brown, Bob MD
Jones, Mike MD         Green, Ann MD
Doe, Jane MD           White, Mary MD

Mon tableau montre les noms de Rendering et de PCP côte à côte, et je voulais ajouter une autre colonne contenant l'instruction IF qui effectue la vérification (probablement quelque chose qui dit juste "OUI" pour les résultats positifs et laisse tout le reste vide). Cela devrait ressembler à quelque chose comme ceci :

Rendering              PCP                     Seen PCP/team?
---------------------------------------------------------------
Smith                  Smith, John MD          YES
Smith                  Jones, Mike MD          YES
Brown                  Smith, John MD
Green                  Brown, Bob MD           YES
Doe                    White, Mary MD
Doe                    Jones, Mike MD          YES

Le résultat ne devrait donc être négatif que si les noms Rendering et PCP sont issus d'équipes différentes. Et puisque je vérifie maintenant par rapport à un liste de noms (ou de chaînes de texte) plutôt que de faire une simple comparaison entre les cellules, je ne peux pas simplement utiliser mon @PCP y @Rendering plus de paramètres (à moins que je ne manque totalement quelque chose). J'imagine une série d'éléments imbriqués de type IF et j'ai passé un certain temps à esquisser la structure de base de ce à quoi il devra ressembler.

=IF(@PCP = Smith AND @Rendering = Smith, "YES", IF(@PCP = Smith AND @Rendering = Jones, "YES", IF(@PCP = Smith AND @Rendering = Doe, "YES", IF(@PCP = Jones AND @Rendering = Jones, "YES", IF(@PCP = Jones AND @Rendering = Smith, "YES", IF(@PCP = Jones AND @Rendering = Doe, "YES", IF(@PCP = Doe AND @Rendering = Doe, "YES", IF(@PCP = Doe AND @Rendering = Smith, "YES", IF(@PCP = Doe AND @Rendering = Jones, "YES", "")))))))))

Évidemment, cette syntaxe n'est pas tout à fait correcte, et ce n'est qu'une des deux équipes (je m'occupe en fait de quatre dans la vie réelle), mais suis-je sur la bonne voie ? J'ai essayé de faire une version condensée avec seulement deux prestataires, juste à titre expérimental, et Excel m'a juste donné le message "On dirait que vous essayez d'écrire une formule..." et n'a pas voulu me dire ce qui n'allait pas. Je sais que je vais devoir utiliser des caractères génériques à moins que je ne veuille taper les noms complets des prestataires pour le champ PCP...

Quelqu'un a-t-il des suggestions à faire pour que cela fonctionne ?

1voto

Yisroel Tech Points 4790

Si vous avez la liste des visites sur Sheet1 et la liste des équipes est sur Sheet2 . Je ferais (sur Sheet1 C2 ) :

=IF(AND(COUNTIF(Sheet2!$A$1:$A$3,"*"&A2&"*")>0,COUNTIF(Sheet2!$A$1:$A$3,B2)>0),"YES",IF(AND(COUNTIF(Sheet2!$B$1:$B$3,"*"&A2&"*")>0,COUNTIF(Sheet2!$B$1:$B$3,B2)>0),"YES",""))

Voici un exemple de fichier : https://1drv.ms/x/s!Ao8EzDmtlA0JhiS_KbIZSnlWSno4

0 votes

Je pense que cela devrait fonctionner ! Je vais continuer à jouer avec et je reviendrai marquer la réponse si je suis satisfait des résultats. Merci d'avoir inclus le fichier d'exemple, c'est très utile.

0 votes

Mise à jour : c'est exactement ce dont j'avais besoin. J'ai modifié la formule pour tenir compte de nos quatre équipes actuelles et cela fonctionne parfaitement. Merci beaucoup !

0voto

yass Points 2494

Vous devez créer un nom d'équipe, par exemple l'équipe A (Smith, John MD et Jones, Mike MD et Doe, Jane MD) l'équipe B (Brown, Bob MD et Green, Ann MD et White, Mary MD) vous pouvez ajouter toutes vos équipes dans 2 colonnes, une pour le PCP et la seconde pour le nom de l'équipe (A, B, C et D) Utilisez Vlookup pour trouver le nom de l'équipe pour chaque rendu et PCP et comparez-le avec If, si vous avez la même équipe, écrivez YES sinon "" vide.

=IF(VLOOKUP("*"&A2&"*",$F$2:$G$7,2,FALSE)=VLOOKUP(B2,$F$2:$G$7,2,FALSE),"YES","")

=if(vlookup("*"&@Rendering&"*",PCP:Team,2,False)=vlookup(@PCP,PCP:Team,2,False),"YES","")

Vos données sont dans A1:B7 comme votre deuxième table (Rendering, PCP, Seen...)
F2:G7 est le tableau des 2 colonnes (PCP:Team)
2 dans Vlookup pour lire la deuxième colonne Nom de l'équipe
Faux pour avoir le résultat exact

enter image description here

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X