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 - 1 mars 2023 à 12:35
- Virginie organise un rallye avec 30 équipes. elle veut créer un code pour désigner chaque équipe.elle a commencé à la main, mais elle voudrait le faire calculer automatiquement.trouvez ce qu'elle veut faire puis proposez une formule à recopier vers le bas dans la colonne a.quelle formule sera en a9 ?
- Formule somme excel colonne - Guide
- Formule si et - Guide
- Créer un compte gmail - Guide
- Créer un groupe whatsapp - Guide
- Créer un compte google - Guide
8 réponses
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
21 nov. 2022 à 23:18
Bonjour à tous,
Une proposition :
https://cjoint.com/c/LKvwrpJLPQY
Crdlmt
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
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
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
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
22 nov. 2022 à 11:22
Bonjour,
Il s'agit de la version 2019
Merci beaucoup
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
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
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionModifié 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))
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))
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
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
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)
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
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
22 nov. 2022 à 18:10
Re bonjour,
Oui absolument.
Si le NB est 16, on prend 18 qui renvoi à 3 :)
22 nov. 2022 à 16:44
Ca fonctionne. Je ne sais comment vous remercier... Je n'y serai jamais parvenue sans votre aide.
Merci infiniment !!!
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
20 févr. 2023 à 09:49
Bonjour,
Oui c'est probablement un problème ces pseudo âges. As-tu moyen de changer cela ?
Cordialement
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 mars 2023 à 12:35
Bonjour,
Je vous remercie sincèrement pour votre précieuse aide.
En vous souhaitant une belle journée,
Cordialement