Recherche valeur avec ecart type

juliette -  
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je souhaite rechercher une valeur d'une base de donnée en fonction d'un écart type. Par exemple, j'ai plusieurs caractéristiques sur un test, en fonction de ma donnée d'entrée, ca trouve un ou des tests et les ressort parmis plusieurs. Pour faire le tri, le but est de majorer la valeur de 3% entrée par l'utilisateur : si je met 10, ca cherche dans la base de données entre 10 et 10.3 et m'indique les tests correspondants.

Mieux expliqué avec ce fichier : http://cjoint.com/?3CFoORFWWzL

Merci d'avance !

17 réponses

ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Bonjour

Un début de réponse via vba
https://www.cjoint.com/?3CFrGrWqbQr

Cdlmnt
0
juliette
 
Merci pour votre réponse.
N'existe t il pas une solution avec des formules type rechercheV ou Index ?
En enlevant l'écart type et en cherchant les 3 valeurs au dessus du résultat recherché ?
0
Juliette > juliette
 
Personne ne peut m'aider?
0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746 > Juliette
 
Bonjour Juliette
Hello ccm81

Une possibilité avec INDEX EQUIV, en rajoutant une colonne décompte au tableau :
https://www.cjoint.com/?0DboEHsU9kA

Cdlmnt
Via
0
juliette
 
Merci via55 !

Je viens de réfléchir, si on indique les 3 résultats qui suivent la valeur que l'on indique (on supprime l'hypothèse avec l'écart type 3%).
C'est plus simple non ?
0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
Re,

Je rentre seulement et je découvre ton message.
Plus simple peut être mais il faut alors que le tableau soit trié car si tu mets simplement comme condition SI >25 dans la colonne dénombrement les 3 premières valeurs rencontrées seront celles retenues et cela peut être 28, 30 et 34 si des valeurs entre 25 et 28 existent mais sont après
0
juliette
 
Merci de votre réponse.

Avez vous un exemple à me donner svp?
0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746 > juliette
 
Bonjour juliette

Je viens de trouver la solution sans colonne supplémentaire ni liste triée, en combinant INDEX EQUIV avec PETITE.VALEUR
https://www.cjoint.com/?0DclYOEEEtV
Dans les formules le PETITE.VALEUR($B$17:$B$27;NB.SI($B$17:$B$27;"<"&$B$3)+1 renvoie la 1ere petite valeur supérieure ou égale à B3, PETITE.VALEUR($B$17:$B$27;NB.SI($B$17:$B$27;"<"&$B$3)+1 la 2eme, etc

Cdlmnt
Via
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Salut via55

ça fait un moment que je n'étais pas revenu sur le sujet.
Une remarque pour ta formule, si deux prénoms ont la même mesure, par exemple Manu et Michel tous les deux à 25.3, le deuxième n'est pas renvoyé, enfin du moins je crois

Cdlmnt
0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
Salut ccm81

Tu as raison, la 2eme est bien prise en compte mais la fonction INDEX renvoie le 1er nom qui est donc indiqué 2 fois; je ne vois pas pour l'instant comment contourner le problème sauf à en revenir à ma 1ere solution avec colonne de comptage ajoutée, mais je continue à chercher..

Cdlmnt
0

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

Posez votre question
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Alors qu'avec une petite macro sans colonne supplémentaire ...
https://www.cjoint.com/?3DcwH72u5D5

Cordialement
0
juliette
 
Merci !
Oui j'ai vu l'erreur pour l'affichage du meme nom pour des valeurs identiques...
Avez vous trouvé comment résoudre ce soucis ?
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
La macro ci-dessus résout ce souci, mais si tu es toujours allergique aux macros .... il ne reste plus qu'à attendre la réponse (certainement positive) de via55
Cdlmnt
0
juliette
 
Merci de ta réponse ccm81, je vais attendre la réponse de via55, car je n'arrive pas à adapter ta macro à ma feuille excel.
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Bon, via55 doit encore être à la sieste et comme je m'en voudrai de le réveiller, je te propose ceci sans macro (dommage)
https://www.cjoint.com/?3Ddrk7KogeL
RQ. Pour les formules "résultats", tu peux remplacer LIGNE()-5 par 1, puis 2, puis 3
=INDEX($A$17:$A$27;EQUIV(LIGNE()-5;$E$17:$E$27;0))
=INDEX($A$17:$A$27;EQUIV(2;$E$17:$E$27;0))


Cdlmnt
0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
Bonsoir juliette
Bonsoir ccm ;)

Eh non je n'étais pas à la sieste mais au boulot!

Pas moyen de trouver par formule sans rajouter de formules supplémentaires la manière de prendre en compte les doublons (on devrait pourvoir avec une matricielle mais je bute sur sa mise en oeuvre)

En l'état actuel les propositions de ccm (avec ou sans macro) sont les plus pertinentes

Cdlmnt
Via
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Bonjour à tous,

Je n'étais pas loin pour une formule unique mais index() ne supporte pas la validation matricielle ici.

Colonne supp, en D6 :
=MOD(GRANDE.VALEUR(($B$17:$B$27>=$B$3)*($B$17:$B$27<$B$3*1.03)*($B$17:$B$27+LIGNE($B$17:$B$27)/10000);LIGNE()-5)*100;1)*100
formule matricielle à valider avec shift+ctrl+entrée
5 : nombre de lignes au-dessus de la 1ère formule

En B6 : =INDEX(A:A;D6)
En C6 : =INDEX(C:C;D6)

Résultat affiché de la plus grande mesure en décroissant.
https://www.cjoint.com/c/EDdsIz3ySYE

eric
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Re-salut via55

Et ça ne gère pas les triplons
Une solution mais avec 2 colonnes supplémentaires
https://www.cjoint.com/?3DdsSqJFebr

Bonne soirée
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Salut Eric

Chapeau pour ta formule, tordue à souhait ;-)
Mais elle n'est plus d'actualité, la demande a peut être changé (post #5) pour les trois premières valeurs >= $B$3. Et c'est encore bien casse tête, du moins pour moi. Je n'ai trouvé qu'avec deux colonnes supp ou une macro

Bon weekend

Cordialement
0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
Bonjour à tous

Gestion des triplons avec une seule colonne supplémentaire pour déterminer le rang :
https://www.cjoint.com/?0DenJBjRvGu
Eric va peut être nous trouver une autre formule magique !

Bon week-end pascal

Bien cdlmnt
Via
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Bonjour à tous,

Je l'avais vu ce post #5, mais zappé :-)
Je l'ai pris pour une tentative de simplifier le problème, pas comme un impératif.
Sinon ma proposition du #17 n'est pas gênée par les triplets normalement.

Et finalement sans colonne supplémentaire, decaler() n'est pas gêné par la validation matricielle contrairement à index() :-)
En B6:
=DECALER($A$1;ARRONDI(MOD(GRANDE.VALEUR(($B$17:$B$27>=$B$3)*($B$17:$B$27<$B$3*1.03)*($B$17:$B$27)*10+LIGNE($B$17:$B$27)/1000;LIGNE()-5);1)*1000;0)-1;)

En B7 : idem mais
=DECALER($C$1;...)

Avec donc les mesures comprises dans la fourchette à partir de la plus élevée (et pas de soucis avec les doublons, triplets, etc).
https://www.cjoint.com/c/EDepDbfb7WH

eric
0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
Re Eric

Bravo pour ta formule elle gère les exæquos mais ne prend pas en compte Michel qui avec 25,2 es t plus près pourtant de 25 que Manu avec 25,3.
Comment adapter ta formule pour ressortir les noms correspondant aux 3 plus petites valeurs, dans ton exemple ce serait Michel, puis Manu puis Jêrome ?

Bien cdlmnt
Via
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
Ah oui, comme précisé fournit le résultat à partir de la plus grande mesure acceptée, en décroissant.
Dans l'ordre croissant à partir de la plus petite mesure il y a la tienne. Une colonne supp ce n'est pas la mer à boire ;-)
En une formule unique je crains qu'elle ne soit un peu longuette et difficile à maintenir. Mais bon, c'était plus pour le sport. S'il y en a plus de 3 on ne sait pas les préférences du demandeur (les plus petites ? Les plus grandes ? Indifférent ?).
eric
0
Juliette
 
Je vois que ca bosse dur ici !

On va y arrivé !
0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
Hello juliette

Pour gérer les doublons et surtout les éventuels triplets dans l'ordre croissant il n'y a pour l'instant que ma proposition message n°20, pour ma part, je ne peux rien de plus

Bien crdlmnt
Via
0
juliette
 
Merci via55, c'est impec avec la colonne pour le tri croissant.

Dernière question, si je rajoute un critère c'est à dire on garde ce que l'on a jusqu'à maintenant on ajoute le critère : "inférieur à 30ans" c'est faisable ?

Voilà (anciennes formules sur le fichier) : http://cjoint.com/?3Dimf2opMpe
0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
Bonjour juliette

Pas de souci, si tu veux par contre comme tu l'indiques dans le fichier un classement du plus jeune au plus vieux il faut rajouter une colonne :
https://www.cjoint.com/?0DinSwSNto6

Cdlmnt
Via
0
juliette
 
Yes pas mal mais si je met l'age de 16ans à Manu, j'ai deux fois le 2e rang. Petit bug, figer la plage non ?
0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746 > juliette
 
Oui, désolé,oubli de ma part, bien sûr il faut figer la plage :
=SI(D22="";"";RANG(D22;$D$22:$D$33;1))
0
juliette
 
Yes je l'avais fait, merci!
J'ai réussis à rajouter un critère mais je souhaite que ce dernier soit lié à une case à cocher (case verte dans le fichier).

Fichier : http://cjoint.com/?3Djr1PrX2Hi

Difficile ?
0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
Bonsoir Juliette

Difficile non, mais ce sont des boutons d'option liés tous à la même cellule B9 qu'il faut employer, si le 1er bouton est coché il renvoie 1 en B9, le 2eme , 2 etc
https://www.cjoint.com/?0DjvyFETFXF

Cdlmnt
Via
0
juliette
 
Parfait, merci.

Pour info , si je souhaite avoir 2 niveaux d'options. C'est à dire que j'ai déjà choisi un choix (2par exemple) et souhaite ensuite faire un choix : 2B (parmi 2A - 2B - 2C). Car quand je rajoute des cases options, il sélectionne 1 seule option.

Je choisis 2 puis après je choisis 2B.
0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746 > juliette
 
Bonjour juliette

Tu tiens à faire plusieurs choix successifs ? Il vaudrait mieux peut-être alors passer pas des listes déroulantes de choix plus simple de manipulation. Néanmoins avec 2 séries de boutons Controle ActiveX c'est possible :
https://www.cjoint.com/?0DkpRBV7eoJ

Cdlmnt
Via
0