Intrication de fonctions SI

Bonjour à tous,

J'avance à grands pas sur ma base de données.

Celle-ci comporte 107000 consultations de patients

J'y analyse différents critères et notamment le diabète.

Problème : ma base comporte des erreurs, ainsi des patients ayant le diabète à 95 ans ne l'ont plus à 98 ans (ce qui est impossible)

J'aimerai donc corriger cette erreur en créant une dernière colonne "diabète corrigé" avec une intrication de fonctions si

En gros : si diabète à age N, alors forcément diabète à N+1/+2 etc

Et je n'y arrive pas

Si vous avez une piste, je prends

Merci d'avance,

Cédric

Ps : ci-joint les 20 premières lignes de ma base avec le patient n°1 qui est pile dans ce cas précis

Bonjour,

La demande n'est pas claire. Il faut des précisions et des exemples de résultat attendus.

Un peu complexe, mais cela fonctionne ...

En O2

=SIERREUR(N2<INDEX(N$2:N$17;EQUIV((A$2:A$17)&MAX((A$2:A$17=A2)*(D$2:D$17<D2)*(D$2:D$17));A$2:A$17&D$2:D$17;0));"")

en matriciel

la correction se fait ensuite pas à pas ...

@ Raja : en fait ce que je souhaite est explicable par le patient n°1 (ligne 2 à 6)

  • ligne 2 à 5 : son âge varie entre 95 et 96 ans : il est diabétique ("1" à la colonne diabète)
  • ligne 6 : à 98 ans il n'est pas diabétique ("0" à la colonne diabète)
C'est une erreur

Et je souhaite donc qu'excel transforme le 0 en 1 dans une colonne adjacente "diabète corrigé"

Il me faut donc une formule qui regarde chaque numéro de patient, l'age à chaque fois, et s'il y a du diabète à un age précédent. Si oui, me le reporter dans la colonne "diabète corrigé"

Le postulat est : "tout n° patient ayant du diabète à un âge N donné en aura forcément à un âge N+1, N+2, N+3 et ainsi de suite

@ Steelson : ta solution me va : ensuite avec une simple formule je peux transformer les "VRAI" en "1" et m'en sortir par là.

En revanche il me faut modifier un peu ta matrice pour qu'elle accepte d'étudier les données sur une plage de cellules de 106856 consultations et non 17. J'ai essayé en faisant "ctrl+maj+enter" de corriger la plage de la formule, mais quand je la recopie, excel supprime les vrai ou faux et ne me met que des cases vides. J'ai du louper un truc

Merci d'avance

Bonjour,

Formule suivante en O2 et à copier vers le bas :

=--(SOMMEPROD(($B$2:B2=B2)*(($N$2:$N2)))>0)

Re-bonjour,

Cela fonctionne parfaitement, merci beaucoup !

Raja a écrit :

Bonjour,

Formule suivante en O2 et à copier vers le bas :

=--(SOMMEPROD(($B$2:B2=B2)*(($N$2:$N2)))>0)

Bravo Raja, c'est plus simple que moi !

Heu ... un truc m'échappe !

Le postulat est : "tout n° patient ayant du diabète à un âge N donné en aura forcément à un âge N+1, N+2, N+3 et ainsi de suite

Comment tiens-tu compte de l'âge à partir duquel le diabète est irréversible ?

En fait c'est un principe de médecine (je suis médecin)

Quiconque est diagnostiqué diabétique le restera toute sa vie, au moins sur le papier.

Certes le diabète pourra être contrôlé / limité, mais il sera toujours présent, et à la moindre maladie intercurrente, réapparaitra

Du coup je suis obligé de considérer tous les "0" suivants un "1" chez un patient donné comme des erreurs, et donc de les corriger en "1" (= diabète)

Hésite pas à me dire si je suis pas clair

Rechercher des sujets similaires à "intrication fonctions"