Formule INDEX

Résolu/Fermé
kitsounet Messages postés 52 Date d'inscription samedi 26 février 2022 Statut Membre Dernière intervention 12 mars 2024 - Modifié le 21 nov. 2022 à 21:36
kitsounet Messages postés 52 Date d'inscription samedi 26 février 2022 Statut Membre Dernière intervention 12 mars 2024 - 1 mars 2023 à 12:35

Bonjour à toutes et à tous,

Je n'arrive pas à effectuer une formule.

Je souhaiterais qu'en fonction de l'âge du patient |en vert| et du score obtenu (NB) |case rouge|, une formule me permette d'aller chercher la note corrigée (NS) |en bleu| faisant référence à la NB |en jaune|.
A savoir que la note brute peut ne pas être identique à celles inscrites dans le tableau : exemple le tableau indique NB 34 = NS 6 donc une NB de 33 serait égale a 6 car <= 34 (Cf tableau colonne jaune foncé)

J'ai intégré la formule INDEX mais elle ne fonctionne pas, pourriez vous m'aider s'il vous plait ?

https://cjoint.com/c/LKvuJ2cohLJ

Merci beaucoup

A voir également:

8 réponses

ALS35 Messages postés 1033 Date d'inscription jeudi 18 juillet 2019 Statut Membre Dernière intervention 9 janvier 2024 139
22 nov. 2022 à 15:32

Bonjour à tous,

Ton problème est assez complexe.

Une proposition en modifiant la ligne 1 pour coller au principe de fonctionnement de la fonction EQUIV, et visualisation par MFC. Il peut y avoir des erreurs de compréhension et/ou des cas non prévus.

À tester.

https://www.cjoint.com/c/LKwoEIjgr4E

Cordialement

1
kitsounet Messages postés 52 Date d'inscription samedi 26 février 2022 Statut Membre Dernière intervention 12 mars 2024 2
22 nov. 2022 à 16:44

Ca fonctionne. Je ne sais comment vous remercier... Je n'y serai jamais parvenue sans votre aide.

Merci infiniment !!!

0
kitsounet Messages postés 52 Date d'inscription samedi 26 février 2022 Statut Membre Dernière intervention 12 mars 2024 2
19 févr. 2023 à 22:15

Bonjour,

Il y a quelques mois, vous m'aviez aidé pour une formule sur ce fil de discussion.

Aujourd'hui, j'ai tenté de créer un autre fichier identique mais ca dysfonctionne.
Le problème vient probablement du fait que cette fois ci, il y a également des mois de naissance (exemple : 6 ans = 6 ; jusqu'à 6 ans et 11 mois = 6,11) ce qui pose un problème majeur étant donné que par exemple 6,11 est considéré plus petit que 6,9 mois.

Pourriez vous à nouveau m'aider ?

https://www.cjoint.com/c/MBtvplC6yB4

En vous remerciant

0
ALS35 Messages postés 1033 Date d'inscription jeudi 18 juillet 2019 Statut Membre Dernière intervention 9 janvier 2024 139 > kitsounet Messages postés 52 Date d'inscription samedi 26 février 2022 Statut Membre Dernière intervention 12 mars 2024
20 févr. 2023 à 09:49

Bonjour,

Oui c'est probablement un problème ces pseudo âges. As-tu moyen de changer cela ?

Cordialement

0
ALS35 Messages postés 1033 Date d'inscription jeudi 18 juillet 2019 Statut Membre Dernière intervention 9 janvier 2024 139 > kitsounet Messages postés 52 Date d'inscription samedi 26 février 2022 Statut Membre Dernière intervention 12 mars 2024
26 févr. 2023 à 21:14

Bonjour,

Si ton problème est toujours d'actualité, une solution possible en remplaçant les âges 6,1 6,2 ... par 6,01 6,02 jusqu’à 6,11 :

https://www.cjoint.com/c/MBAuoDxAo18

Cordialement

1
kitsounet Messages postés 52 Date d'inscription samedi 26 février 2022 Statut Membre Dernière intervention 12 mars 2024 2 > ALS35 Messages postés 1033 Date d'inscription jeudi 18 juillet 2019 Statut Membre Dernière intervention 9 janvier 2024
1 mars 2023 à 12:35

Bonjour,

Je vous remercie sincèrement pour votre précieuse aide.

En vous souhaitant une belle journée,

Cordialement

0
DjiDji59430 Messages postés 4114 Date d'inscription samedi 19 avril 2008 Statut Membre Dernière intervention 23 septembre 2024 668
21 nov. 2022 à 23:18

Bonjour à tous,

Une proposition :

https://cjoint.com/c/LKvwrpJLPQY


Crdlmt

0
kitsounet Messages postés 52 Date d'inscription samedi 26 février 2022 Statut Membre Dernière intervention 12 mars 2024 2
22 nov. 2022 à 09:45

Bonjour,

Je vous remercie sincèrement,

Malheureusement ca ne fonctionne pas. Lorsque je rentre pour une personne de 30 ans NB 34, le score est NS est juste. En revanche, si je mets NB 21 le NS devrait être de 3 et le calcul m'indique 1 et parfois N/A.

La formule est complexe et je ne comprends absolument pas comment faire pour corriger cela.

Cordialement

0
Willzac Messages postés 266 Date d'inscription mercredi 27 septembre 2017 Statut Membre Dernière intervention 20 juin 2024 14
22 nov. 2022 à 10:40

Bonjour,

Essayez ceci : =RECHERCHEX(O2;E2:E20;A2:A20;"non trouvé";1;1) 

Nb : si vous avez la version récente d'Excel.

Bien cordialement

Will


0
kitsounet Messages postés 52 Date d'inscription samedi 26 février 2022 Statut Membre Dernière intervention 12 mars 2024 2
22 nov. 2022 à 10:59

Bonjour,

Merci pour la réponse, la formule ne fonctionne pas, elle indique #NOM?

Elle ne tient pas compte de l'âge du patient il me semble ? je souhaiterais qu'en fonction de l'age renseigné en case 01, elle cherche dans toute la plage jaune.

Merci pour votre précieuse aide.

Cordialement

0
Willzac Messages postés 266 Date d'inscription mercredi 27 septembre 2017 Statut Membre Dernière intervention 20 juin 2024 14 > kitsounet Messages postés 52 Date d'inscription samedi 26 février 2022 Statut Membre Dernière intervention 12 mars 2024
22 nov. 2022 à 11:18

Bonjour,

Vous avez donc pas la version récente (Office 365). 

#NOM? veut dire qu'elle ne connait le nom ou la formule qu'on a utilisé.

Je vais reformuler avec d'autre formule.

Bien cordialement

Will

0
kitsounet Messages postés 52 Date d'inscription samedi 26 février 2022 Statut Membre Dernière intervention 12 mars 2024 2 > Willzac Messages postés 266 Date d'inscription mercredi 27 septembre 2017 Statut Membre Dernière intervention 20 juin 2024
22 nov. 2022 à 11:22

Bonjour, 

Il s'agit de la version 2019 

Merci beaucoup

0
Willzac Messages postés 266 Date d'inscription mercredi 27 septembre 2017 Statut Membre Dernière intervention 20 juin 2024 14 > kitsounet Messages postés 52 Date d'inscription samedi 26 février 2022 Statut Membre Dernière intervention 12 mars 2024
Modifié le 22 nov. 2022 à 12:00

Rebonjour : 

Nb : Supprimer les signes inferieurs sur les âges, les lignes vertes. 

Essayer ceci : =SIERREUR(EQUIV(O2;DECALER(A1;19;EQUIV(O1;B1:L1;1);-19;1);0);"non trouvé")

dont

DECALER(A1;19;EQUIV(O1;B1:L1;1)) pour récupérer la plage de l'âge.

Bien cordialement

Will

0
kitsounet Messages postés 52 Date d'inscription samedi 26 février 2022 Statut Membre Dernière intervention 12 mars 2024 2 > Willzac Messages postés 266 Date d'inscription mercredi 27 septembre 2017 Statut Membre Dernière intervention 20 juin 2024
22 nov. 2022 à 12:52

Bonjour,

Ca fonctionne pour l'âge, merci, j'ai également changé les âges étant donné que c'était < à ... donc inversé en mettant l'âge minimum au lieu de maximum. Donc ce problème n°1 est réglé.

En revanche, concernant les scores, si le chiffre est identique à celui d'une plage ca fonctionne parfaitement (exemple age 16, / NB 13 / NS 1. En revanche il s'agit de plages donc si NB = 14 ca devrait aller chercher la seconde ligne NS 2 qui va de 14 à 16.

Je vous joins le fichier avec votre formule, pourriez vous résoudre ce 2nd problème ?

https://cjoint.com/c/LKwlZSXV67e

Merci beaucoup 

1
Mike-31 Messages postés 18337 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 27 septembre 2024 5 099
22 nov. 2022 à 11:07

Bonjour,

essaye cette formule matricielle que tu devras confirmer en cliquant en même temps sur les trois touches du clavier

Ctrl, Schift et Entrée si tu fais bien la formule se placera entre ces accolades { }

=INDIRECT("A"&EQUIV(O2;INDIRECT(CAR(EQUIV(Q2;SUBSTITUE($A$1:$L$1;"<";"")*1;1)+64)&":"&CAR(EQUIV(Q2;SUBSTITUE($A$1:$L$1;"<";"")*1;1)+64));1))

et on en reparle


0
kitsounet Messages postés 52 Date d'inscription samedi 26 février 2022 Statut Membre Dernière intervention 12 mars 2024 2
22 nov. 2022 à 11:17

Bonjour,

Merci beaucoup pour l'aide. La formule ne fonctionne pas, j'imagine a cause de Q2 qui correspond à une cellule vide sur ma feuille. Avec quelle cellule dois je le remplacer svp ?

Merci beaucoup

0

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

Posez votre question
Mike-31 Messages postés 18337 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 27 septembre 2024 5 099
Modifié le 22 nov. 2022 à 11:22

Re,

exact j'ai laissé trainer une référence remplace ma formule toujours en matricielle par

=INDIRECT("A"&EQUIV(O2;INDIRECT(CAR(EQUIV(MAX(SI(SUBSTITUE(B1:L1;"<";"")*1<=O1;SI(SUBSTITUE(B1:L1;"<";"")<>"";SUBSTITUE(B1:L1;"<";"")*1)));SUBSTITUE($A$1:$L$1;"<";"")*1;1)+64)&":"&CAR(EQUIV(MAX(SI(SUBSTITUE(B1:L1;"<";"")*1<=O1;SI(SUBSTITUE(B1:L1;"<";"")<>"";SUBSTITUE(B1:L1;"<";"")*1)));SUBSTITUE($A$1:$L$1;"<";"")*1;1)+64));1))


0
Mike-31 Messages postés 18337 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 27 septembre 2024 5 099
22 nov. 2022 à 11:50

Re,

As tu testé la formule de mon post 9

tu peux également remplacer les syntaxe SUBSTITUE par DROITE ce qui raccourcira un peu la formule ce qui donne toujours en matricielle

=INDIRECT("A"&EQUIV(O2;INDIRECT(CAR(EQUIV(MAX(SI(DROITE(B1:L1;2)*1<=O1;SI(DROITE(B1:L1;2)<>"";DROITE(B1:L1;2)*1)));DROITE($A$1:$L$1;2)*1;1)+64)&":"&CAR(EQUIV(MAX(SI(DROITE(B1:L1;2)*1<=O1;SI(DROITE(B1:L1;2)<>"";DROITE(B1:L1;2)*1)));DROITE($A$1:$L$1;2)*1;1)+64));1))

0
kitsounet Messages postés 52 Date d'inscription samedi 26 février 2022 Statut Membre Dernière intervention 12 mars 2024 2
22 nov. 2022 à 12:02

Bonjour,

Je vous remercie infiniment, ca fonctionne presque. Il demeure ces petits problèmes :

- Le formule prend les colonne en considérant > à l'age renseigné (exemple : si mon patient a 19 ans, NB 15, il va chercher le score dans la colonne <18

- Dans la même logique, si mon patient à toujours NB 15, il prend >= au score indiqué au lieu de <= (exemple : il donne NS 1 au lieu de NS 2) car il s'agit toujours de scores < ou = a ce qui est indiqué.

La formule est sur le point de fonctionner mais sa complexité me dépasse et en tentant de légères modifications je l'empeche de fonctionner. Que dois je modifier pour corriger ces 2 petits détails ?

Merci infiniment

0
Willzac Messages postés 266 Date d'inscription mercredi 27 septembre 2017 Statut Membre Dernière intervention 20 juin 2024 14
Modifié le 22 nov. 2022 à 11:59

Rebonjour : 

Nb : Supprimer les signes inferieurs sur les âges, les lignes vertes. 

Essayer ceci : =SIERREUR(EQUIV(O2;DECALER(A1;19;EQUIV(O1;B1:L1;1);-19;1);0);"non trouvé")

dont

DECALER(A1;19;EQUIV(O1;B1:L1;1)) pour récupérer la plage de l'âge.

Bien cordialement

Will


0
Mike-31 Messages postés 18337 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 27 septembre 2024 5 099
22 nov. 2022 à 13:32

Re,

regarde toujours en matricielle cette formule, si elle répond à tes attentes je regarderai dans la soirée voir de la simplifier.

Si ton tableau est appelé à comporter d'autres lignes, elles seront prise en compte automatiquement, par contre si les bornes du tableau sont définitives il est possible d'écourter la formule 

=EQUIV(PETITE.VALEUR((B2:B20>=O2)*B2:B20;NB.SI(B2:B20;"<"&O2)+1);INDIRECT(CAR(EQUIV(MAX(SI(DROITE(B1:L1;2)*1<=O1;SI(DROITE(B1:L1;2)<>"";DROITE(B1:L1;2)*1)));DROITE($A$1:$L$1;2)*1;1)+64)&2&":"&CAR(EQUIV(MAX(SI(DROITE(B1:L1;2)*1<=O1;SI(DROITE(B1:L1;2)<>"";DROITE(B1:L1;2)*1)));DROITE($A$1:$L$1;2)*1;1)+64)&(MAX(EQUIV(9^9;INDIRECT(CAR(EQUIV(MAX(SI(DROITE(B1:L1;2)*1<=O1;SI(DROITE(B1:L1;2)<>"";DROITE(B1:L1;2)*1)));DROITE($A$1:$L$1;2)*1;1)+64)&":"&CAR(EQUIV(MAX(SI(DROITE(B1:L1;2)*1<=O1;SI(DROITE(B1:L1;2)<>"";DROITE(B1:L1;2)*1)));DROITE($A$1:$L$1;2)*1;1)+64)));EQUIV("z";INDIRECT(CAR(EQUIV(MAX(SI(DROITE(B1:L1;2)*1<=O1;SI(DROITE(B1:L1;2)<>"";DROITE(B1:L1;2)*1)));DROITE($A$1:$L$1;2)*1;1)+64)&":"&CAR(EQUIV(MAX(SI(DROITE(B1:L1;2)*1<=O1;SI(DROITE(B1:L1;2)<>"";DROITE(B1:L1;2)*1)));DROITE($A$1:$L$1;2)*1;1)+64))))));1)


0
kitsounet Messages postés 52 Date d'inscription samedi 26 février 2022 Statut Membre Dernière intervention 12 mars 2024 2
22 nov. 2022 à 13:43

Bonjour,

Malheureusement, le problème perdure. La formule prend la mauvaise colonne d'age et ne tient pas compte des tranches de performances.

Exemple : si le patient à 36 ans, il prend la colonne < à 35 au lieu de < à 45 et si le score est de 15 ca recupère bien la NS de 1 mais s'il est de 16, il devrait prendre la seconde ligne <= 18 et il ne traite pas le nombre 16 qui est pas renseigné dans le tableau.

Merci beaucoup pour votre aide

https://cjoint.com/c/LKwmPb4N6Re

0
Mike-31 Messages postés 18337 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 27 septembre 2024 5 099
22 nov. 2022 à 16:19

Re,

ce que je ne comprends pas, suivant ton exemple,

si l'âge est 36, dans le tableau on prend la colonne G <45

jusque la c'est bon.

par contre si le NB est 15 colonne G correspond à 2 pas à 1

1 correspond à la colonne F <35

si le NB est 16 on prend 18 colonne G qui retourne 3 ou ou colonne F qui retourne 2


0
kitsounet Messages postés 52 Date d'inscription samedi 26 février 2022 Statut Membre Dernière intervention 12 mars 2024 2
22 nov. 2022 à 18:10

Re bonjour,

Oui absolument.

Si le NB est 16, on prend 18 qui renvoi à 3 :)

0