Problème avec rechercheV

Bonjour à tous, je viens sur le forum car j'ai un problème pour extraire des données.

Je suis en stage dans un hôpital et le but est de trouver le centre de provenance qui a demandé à ce qu'une radio soit effectué. Le problème est qu'un patient peut avoir effectué 2 radios pendant son séjour à l'hôpital mais il est possible qu'il ait pu changé de centre pendant son séjour (ex : un patient peut être aux urgences puis muté en réa au cours de son séjour). Il y a donc dans la base de données des doublons (2x N°séjour) qui renvoie à des centres différents.

J'ai donc en ma possession 2 fichiers : le premier avec lequel je dois rentrer le centre de provenance (sur ce fichier j'ai donc le numéro de séjour et la date de la radio) et dans le deuxième, c'est une base de données avec les dates de début et fin de séjour ainsi que les dates de début et de fin dans chaque centre et les centres associés à ces séjours.

C'est assez compliqué à expliquer, j'espère que j'ai été clair.

Merci de vos réponses

Bonjour,

Le plus simple est de joindre vos deux fichiers (ou plutôt deux feuilles dans le meilleur des mondes) avec un cas représentatif et anonymisé avec le résultat attendu.

Sinon lu comme ça j'ai l'impression qu'un INDEX(EQUIV()) matriciel ou un INDEX(SOMMEPROD()) répondraient au besoin.

Cdlt,

Bonjour, merci de votre réponse.

Impossible pour moi car les données sont confidentielles et la base de données est trop volumineuse.

je vais traduire en français ce qui est demandé : "Si la date de ma radio est comprise entre la date de début centre et date fin centre, alors pour mon n° séjour, afficher le centre dans lequel j'étais".

Le problème est celui des doublons (un n° de séjour peut être présent 2 fois dans la liste et renvoie à 2 centres différents).

Bonjour,

Je vous traduit le sens du mot anonymiser : "Un document peut être anonyme, non signé, mais authentique". Donc c'est à dire sans notions de noms réels, ou que sais-je d'anonyme.
Pour le mot un cas représentatif c'est représentatif de vos explications, pour un patient, avec le résultat escompté. 3 lignes anonymisées auraient suffit je pense.

Ca demande par contre un certain travail de transformation des données en effet. Du coup je suis parti moi même sur cette transformation en partant du principe que j'avais tout compris. Je vous laisse l'adapter à votre fichier :

=SIERREUR(INDEX(BDD!$B$1:$B$4;SOMMEPROD((BDD!$C$1:$C$4=A2)*(BDD!$D$1:$D$4<=B2)*(BDD!$E$1:$E$4>=B2)*LIGNE(BDD!$A$1:$A$4)));"NA")

Cdlt,

8hop.xlsx (9.91 Ko)

Re,

Merci de votre implication.

Je l'ai testé sur mon fichier mais cela n'affiche toujours pas les bons centre de provenance.

Je vous ai joint un autre fichier anonymisé.

Bonjour,

C'est pourquoi il est conseillé de joindre un fichier comme vous l'avez finalement fait. En D2 puis en tirant :

=SIERREUR(INDEX(BDD!$E$1:$E$7;SOMMEPROD((BDD!$A$1:$A$7=B2)*(BDD!$B$1:$B$7=A2)*(BDD!$C$1:$C$7<=C2)*(BDD!$D$1:$D$7>=C2)*LIGNE(BDD!$A$1:$A$7)));"NA")

Et avec une table structurée si on ne souhaite pas s'occuper du dimensionnement des plages de recherches. Cf fichier joint :

=SIERREUR(INDEX(BDD[[#Tout];[Centre de provenance]];SOMMEPROD((BDD[[#Tout];[Patient]]=B2)*(BDD[[#Tout];[N°séjour]]=A2)*(BDD[[#Tout];[Date début]]<=C2)*(BDD[[#Tout];[Date fin]]>=C2)*LIGNE(BDD[[#Tout];[Patient]])));"NA")

Cdlt,

Re,

je vous remercie, cela a finalement marché.

Bonne fin de journée.

Cdlt

Rechercher des sujets similaires à "probleme recherchev"