Rechercher la valeur la plus proche dans une ligne d'un tableau

Résolu/Fermé
Deathsite Messages postés 18 Date d'inscription mercredi 27 octobre 2010 Statut Membre Dernière intervention 22 janvier 2013 - 18 janv. 2013 à 17:34
Deathsite Messages postés 18 Date d'inscription mercredi 27 octobre 2010 Statut Membre Dernière intervention 22 janvier 2013 - 22 janv. 2013 à 09:14
Bonjour,

Je me creuse la cervelle depuis deux jours pour trouver deux formules :

ci joint le fichier pour que ce soit plus clair
en jaune les cellules de saisie
en vert les cellules où j'ai besoin d'aide!

dans la cellule E22, je souhaiterais trouver la valeur la plus proche (quelle soit plus petite ou plus grande) de la cellule E21 dans le tableau se trouvant dans la feuille "liste des grades et indices".

Cependant, je souhaite que cette recherche se fasse par rapport au grade que lon aura saisi (via liste déroulante) dans la cellule B3 et que l'on retrouve dans la colonne du tableau de la feuille "liste des grades indices".

Une fois qu'il a trouvé cette valeur, je souhaiterai (dans la cellule E23) qu'il me donne le chiffre (échelon) correspondant à cette valeur (indice) que l'on trouve en intitulé de ligne dans le même tableau.

Si vous avez des idées, je suis preneur!!

Et bonne année à tous!!




https://www.cjoint.com/?0AsrBC52BA4

A voir également:

6 réponses

eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
Modifié par eriiic le 21/01/2013 à 11:13
Bonjour à tous,

en E22 :
=INDEX(DECALER('liste des grades et indices'!$A$1;EQUIV($B$3;'liste des grades et indices'!$A:$A;0)-1;1;;13);EQUIV(MIN(ABS(E21-DECALER('liste des grades et indices'!$A$1;EQUIV($B$3;'liste des grades et indices'!$A:$A;0)-1;1;;13)));ABS(E21-DECALER('liste des grades et indices'!$A$1;EQUIV($B$3;'liste des grades et indices'!$A:$A;0)-1;1;;13));0))
formule matricielle à valider avec shift+ctrl+entrée
Pas la peine d'en avoir peur, il suffit de valider autrement c'est tout.

en E23 :
=EQUIV(E22;DECALER('liste des grades et indices'!$A$1;EQUIV($B$3;'liste des grades et indices'!$A:$A;0)-1;1;;13))

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

eric

edit: simplification de formule.
en E22 :
=INDEX(DECALER('liste des grades et indices'!$A$1;EQUIV($B$3;'liste des grades et indices'!$A:$A;0)-1;1;;13);E23)

en E23 :
=EQUIV(MIN(ABS($E$21-DECALER('liste des grades et indices'!$A$1;EQUIV($B$3;'liste des grades et indices'!$A:$A;0)-1;1;;13)));ABS($E$21-DECALER('liste des grades et indices'!$A$1;EQUIV($B$3;'liste des grades et indices'!$A:$A;0)-1;1;;13));0)
formule matricielle à valider avec shift+ctrl+entrée

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

eric

Jamais tu ne répondras à un mp non sollicité...
Bon, ça c'est fait.
1
Deathsite Messages postés 18 Date d'inscription mercredi 27 octobre 2010 Statut Membre Dernière intervention 22 janvier 2013
21 janv. 2013 à 11:13
Bonjour Eric,
Merci pour votre réponse, cela fonctionne parfaitement : j'ai fait plusieurs tests et tous sont bons.

Encore merci pour votre aide!
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
21 janv. 2013 à 11:21
J'ai édité suite à simplification des formules, je ne sais pas si tu as vu.
eric
0
Deathsite Messages postés 18 Date d'inscription mercredi 27 octobre 2010 Statut Membre Dernière intervention 22 janvier 2013
21 janv. 2013 à 11:28
je viens de le voir!
Encore merci, cela va me simplifier grandement le travail que je dois faire!
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
18 janv. 2013 à 18:25
Bonjour

Merci pour la bonne année, on vous la retourne avec plaisir.

Ci joint une proposition.
Pour la mettre en place, il a fallu refaire une grille de vos valeurs par garde:
_ classé dans chaque colonne par ordre croissant
_ sans doublon.
Voyez si ça peut vous convenir.
https://www.cjoint.com/c/CAssyZGUWzB

revenez si besoin de complément

crdlmnt

0
Deathsite Messages postés 18 Date d'inscription mercredi 27 octobre 2010 Statut Membre Dernière intervention 22 janvier 2013
21 janv. 2013 à 09:22
Bonjour,
je n'ai pas pu regarder votre réponse ce week-end, donc je visn de le faire.
Tout d'abord merci d'avoir regardé ce problème.

Ensuite, le soucis étant que je ne peux pas modifier le tableau : ce tableau correspond à des textes et décrets réglementaires auxquels je ne peux me soustraire. De ce fait les doublons ne peuvent pas être enlever.

C'est pour cela que je pensais que la recherche dans ce tableau pouvait éventuellement se faire par le grade, puisqu'à un seul grade correspond une seule ligne du tableau.

cordialement
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
Modifié par Vaucluse le 21/01/2013 à 10:12
Non, ce n'est pas possible avec cette formule, car co,ntrairement à ce que vous dites, il y a pour chaque grade plusieurs fois la, même valeur, et elle ne sont pas classées
Mais qu'est ce qui vous empêche d'utiliser le tableau que j'ai rajouté tout en gardant le tableau d'origine
De toutes façons vous ne pourrez pas baser de recherche sur ce tableau tant que plusieurs lignes auront la, même valeur.
Excel ne saura ps dans tous les cas à quelle ligne s'adresser s'il y en a deux identiques
Bonne chance quand même
crdlmnt.
0
Deathsite Messages postés 18 Date d'inscription mercredi 27 octobre 2010 Statut Membre Dernière intervention 22 janvier 2013
21 janv. 2013 à 10:30
Bonjour,
après vérification de mon tableau de la feuille 2, je pense que vous parlez des 0 que j'ai rajouté en fin de chaque ligne? certains grades n'ont pas tous 13 échelons, donc j'avais rajouté des 0 qui peuvent être enlevés. Par contre je ne comprends pas quand vous dites que les valeurs ne sont pas classées. Après vérification, elles sont par ordre croissant (en ligne uniquement) si l'on enlève les 0 de chaque fin de ligne.
Et à part si l'on prend en considération les 0 que j'avais rajouté (qui font pour certains grades quelques doubons notamment infirmier qui compté 5 0 à la fin de la ligne), toutes les lignes sont classées par ordre croissant.

Ensuite je ne peux malheuresement pas utiliser votre tableau, puisqu'en fonction des grades, l'indice le plus proche sera différent :
par exemple on recherche l'indice le plus proche de 420 (existant dans la feuille 2) :
pour un assistant médico-technique l'indice le plus proche de 420 sera 416 ce qui correspond à l'échelon 6
pour un assistant socio-éducatif l'indice le plus proche de 420 sera 420 ce qui correspond à l'échelon 7
pour un ingénieur l'indice le plus proche de 420 est 425 correspondant à l'échelon 4
...

Je ne sais pas si j'arrive à expliquer clairement ce que je pense, mais n'hésitez pas à me demander, il arrive que je sois brouillon dans mes explications!

Cordialement
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
21 janv. 2013 à 12:31
Bonjour
effectivement, j'avais assez mal compris la demande et en fait , j'allais chercher la valeur de E23 dans les N° de colonnes de la ligne 1 de la feuille Liste.....
En fait je viens de comprendre:
voyez ici si ça ne va pas mieux
https://www.cjoint.com/c/CAvmBLwJ8QL
Sachant quand même que comme j'utilise le code MIN;, il faut enlever les 0 du tableau pour y placer des cellules vides.
Mais notez que l'utilisation des codes MAX et MIN n'est utile que si vous avez des valeurs en dehors de la fourchette du grade correspondant.
crdlmnt
0
Deathsite Messages postés 18 Date d'inscription mercredi 27 octobre 2010 Statut Membre Dernière intervention 22 janvier 2013
21 janv. 2013 à 14:23
Je viens de regarder votre tableau et cela fonctionne très bien.
Je m'excuse pour mes explications précédantes qui ont du paraître vagues voir lojn d'être claires!

Encore merci pour votre aide!

Cordialement
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
18 janv. 2013 à 19:19
Bonjour

Une autre solution avec macro qui évite de toucher à tes grilles
https://www.cjoint.com/?3AstmdPZJIZ

> Vaucluse
Salut à toi. Je me permet l'incruste,
Je viens juste de finir, je n'ai pas vu ta solution et comme ça me chagrine de jeter la mienne à la poubelle ....
cordialement

ccm81
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 394
Modifié par Vaucluse le 18/01/2013 à 19:27
Salut à toi aussi, et bonne année, tiens, en prime.
Pas de raison de la jeter, je pense qu'une macro est sans aucun doute ce qu'il faut pour résoudre plus élégamment et plus directement la question.
Alors ce serait dommage d'en priver le demandeur.. et tous ceux que ça ne manquera pas d'intèresser
bon WE
0
Deathsite Messages postés 18 Date d'inscription mercredi 27 octobre 2010 Statut Membre Dernière intervention 22 janvier 2013
21 janv. 2013 à 09:37
Bonjour, et bonne année!

Merci pour ta réponse, par contre je suis complétement incompétent en terme de macros.
Quand tu mets qu'il faut copier coller les infos de la macro dans mon appli, où est qu'il faut les coller?
J'ai bien essayé, mais à chaque fois cela me fait bugger excel!
0
tontong Messages postés 2549 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 23 avril 2024 1 054
19 janv. 2013 à 15:02
Bonjour,
J'ai voulu terminer ce que j'avais commencé hier soir. De plus je profite du prétexte pour vous souhaiter "Meilleurs Voeux".
Je n'ai pas pu éviter une matricielle pour calculer un écart mini. en valeur absolue, le reste est plus classique.
https://www.cjoint.com/?3Ato75xRgCN
0
Deathsite Messages postés 18 Date d'inscription mercredi 27 octobre 2010 Statut Membre Dernière intervention 22 janvier 2013
21 janv. 2013 à 09:49
Bonjour,

J'ai regardé votre tableau :
en E21, j'ai tapé un IM différent : 420
sur les 6 premières lignes du tableau cela correspond à :
6ème échelon 416
7ème échelon 420
5ème échelon 431
6ème échelon 416
4ème échelon 425
4ème échelon 416
...

Si je ne dis pas de bêtises, je n'ai pas trouvé dans votre tableau de lien avec le grade recherché (B3), qui défienira la ligne sur laquelle rechercher dans le tableau de la feuille 2.

Un grand merci en attendant pour avoir pris le temps de regarder mon problème !
0

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

Posez votre question
Deathsite Messages postés 18 Date d'inscription mercredi 27 octobre 2010 Statut Membre Dernière intervention 22 janvier 2013
21 janv. 2013 à 10:05
Je vous remercie tous pour les réponses que vous m'avait fourni.

Je voulais également vous ajouter quelques précisions :

la cellule E22 se calcule par rapport aux cellules E21 et B3 permettant ainsi de retrouver le bon IM le plus proche pour le bon grade.

Il en va de même pour la cellule E23.

Je ne me rend pas compte de la complexité plus que probable de ce problème, mais je tiens encore à vous remercier pour le temps que vous avez consacré pour m'aider sur ce point.

Pensez-vous qu'il y puisse exister une solution sans macros ni matricielle?
Mes compétences dans ces domaines sont proches pour ne pas dire égales à 0.
0
tontong Messages postés 2549 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 23 avril 2024 1 054
21 janv. 2013 à 12:48
Bonjour,
Au lieu de reporter le grade en B3 j'ai reporté ce que j'ai appelé Qualification 1 et Qualification 2 en F24 et F25. Pour un IM le plus proche égal à 420 il faudrait même ajouter Qualification 3.
Je n'ai pas ramené "IM le plus proche" en E22, il est resté en Q9 de la feuille "liste des grades.."

Si j'avais bien vu qu'il pouvait y avoir plusieurs grades possibles pour un même IM je n'avais pas vu qu'il pouvait y avoir plusieurs échelons. Pour IM = 420 >> 3 grades et 2 échelons.
Le résultat est un peu plus difficile à synthétiser. Faut-il un tableu de synthèse?
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
21 janv. 2013 à 13:49
Salut tontong,

une réponse est remontée tout en haut (+1).
eric
0
Deathsite Messages postés 18 Date d'inscription mercredi 27 octobre 2010 Statut Membre Dernière intervention 22 janvier 2013
21 janv. 2013 à 14:28
Bonjour,

comme l'a signalé eric, la solution est trouvée.

Je vous remercie encore pour le temps que vous avez bien voulu consacrer à résoudre mon problème.
0
tontong Messages postés 2549 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 23 avril 2024 1 054
21 janv. 2013 à 14:33
Salut eriiic,
Merci de me l'avoir signalé: décidément je ne vois plus rien il va falloir que je change de lunettes ....ou pire...
Cependant ton calcul donne 367 comme la valeur la plus proche de 369.11 alors qu'il y a un 371 dans la table!
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
Modifié par eriiic le 21/01/2013 à 14:46
non, depuis le début vous avez une lecture verticale ou globale des données et il faut une lecture horizontale selon le grade.
Pour le grade d'infirmier (en B3) les échelons sont en ligne 5 : {308\324\343\367\390\416\446\481\0\0\0\0\0}
Le plus proche est bien l'échelon 4 = 367
eric
0
tontong Messages postés 2549 Date d'inscription mercredi 3 février 2010 Statut Membre Dernière intervention 23 avril 2024 1 054
21 janv. 2013 à 14:47
OK je retourne à la niche ;-)
0