Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Recherche multi critères avec un critère qui serait le nombre supérieur

BB48

XLDnaute Nouveau
Bonjour la communauté!

Je suis depuis 2 jours sur la création d'une recherche suivant 3 critères idéalement (je peux me contenter de 2 critères en passant par un tableau intermédiaire) et la difficulté c'est que 1 des critères est un nombre qui ne se trouve pas forcément dans la base de donnée requêtée aussi la formule doit prendre le nombre supérieur.

Pour que le résultat rechercher soit peut-être plus clair :
Je souhaite en fonction du temps de charge disponible d'un client, de la tension de sa batterie et de la capacité de sa batterie, savoir qu'elle est la référence du chargeur adéquate.

Dans le fichier ci-joint vous trouverez plusieurs test avec différentes formules :

Test 1 : =+INDEX(BD!$A$2:$A$35;EQUIV(Feuil3!C3;BD!$F$2:$F$35;1)) => Ne prend en compte qu'un seul critère
Test 2 : =INDEX(TEMPS_DE_CHARGE!$D$2:$D$35;EQUIV(Feuil3!C4&Feuil3!C3;TEMPS_DE_CHARGE!$A$2:$A$35&TEMPS_DE_CHARGE!$B$2:$B$35;0)) => Prend en compte 2critères 2+3 et en passant par une table intermédaire pour le critère 1 me remonte le bon résultat mais uniquement si les critères sont exacte ( ne prend pas l'arrondi inférieur ou supérieur)
Test 3 : =DECALER(BD!$A$1;EQUIV(Feuil3!C3;DECALER(BD!$A$2;;EQUIV(Feuil3!C2;BD!$D$1:$J$1;0);34);1) => Variante plutôt pas mal mais je n'arrive pas à intégrer le critère 3...
Test 4 : =RECHERCHE(C3;BD!$F$28:$F$35;BD!$A$28:$A$35) => Ne prend en compte qu'un seul critère
Test 5 :
=SI(C4=12;+RECHERCHE(C3;BD!$F$2:$F$3;BD!$A$2:$A$3);SI(C4=24;+RECHERCHE(C3;BD!$F$4:$F$18;BD!$A$4:$A$18);SI(C4=36;+RECHERCHE(C3;BD!$F$19:$F$27;BD!$A$19:$A$27);+RECHERCHE(C3;BD!$F$28:$F$35;BD!$A$28:$A$35)))) => Ne prend en compte que les critères 2+3 et en passant par une table intermédaire pour le critère 1 me remonte le bon résultat. L'avantage par rapport à la formule du test 2 c'est que celle ci me donne un résultat approchant même si le critère n'est pas dans la base (elle prend l'arrondi inférieur). Le problème c'est que j'aimerais l'arrondi supérieur!!

Si quelqu'un a des idées ou conseil
 

Pièces jointes

  • Table correspondance chargeurs.V1.xlsx
    15.9 KB · Affichages: 15

BB48

XLDnaute Nouveau
Bonjour,

La table BD est une table de correspondance des chargeurs :

Colonne A : Référence du chargeur
Colonne B : Voltage/tension de la batterie 12 ou 24 ou 36 ou 80 Volt dans cette table
Colonne C : la capacité/puissance du chargeur
Colonne D à J : le nombre d'ampère chargé suivant la durée entre 6 et 12h

Donc si nous avons une batterie 80V 995Ah avec 8h de temps de charge quel référence chargeur j'aurais besoin ?

La formule de recherche devra regarder dans la feuille BD la colonne B pour prendre en compte le voltage 80 puis la colonne F indiquant le temps de charge 8h puis s'arrêter sur la case F32 indiquant 1060 soit 1060 ampère chargé en 8h (qui peut le plus peut le moins) et sortir le résultat en case A32 la référence "80120"

J'espère que ces précisions aideront à trouver la solution à mon problème!

Cordialement
 

danielco

XLDnaute Accro
Essaie :

VB:
=INDEX($A$1:$A$35;AGREGAT(14;6;LIGNE(2:35)/((BD!=INDEX($A$1:$A$35;AGREGAT(14;6;LIGNE(2:35)/((BD!B2:B35>=Feuil3!C4)*(DECALER($C$2:$C$35;;EQUIV(Feuil3!C2;BD!$D$1:$J$1;0))<=Feuil3!C3));1))

Daniel
 

BB48

XLDnaute Nouveau
 

BB48

XLDnaute Nouveau
Ah ah ah, effectivement mon message ne s'est pas affiché comme je voulais...

Ci-dessous en rouge le point d'erreur il me semble. Quand on l'enlève formule fonctionne mais retourne #VALEUR! en résultat.

=INDEX($A$1:$A$35;AGREGAT(14;6;LIGNE(2:35)/((BD!=INDEX($A$1:$A$35;AGREGAT(14;6;LIGNE(2:35)/((BD!B2:B35>=Feuil3!C4)*(DECALER($C$2:$C$35;;EQUIV(Feuil3!C2;BD!$D$1:$J$1;0))<=Feuil3!C3));1))
 

danielco

XLDnaute Accro
Oups. Désolé. Je ne sais pas ce que j'ai pu faire :

VB:
=INDEX($A$1:$A$35;AGREGAT(14;6;LIGNE(2:35)/((BD!B2:B35>=Feuil3!C4)*(DECALER($C$2:$C$35;;EQUIV(Feuil3!C2;BD!$D$1:$J$1;0))<=Feuil3!C3));1))

Daniel
 

BB48

XLDnaute Nouveau
Tout d'abord un grand merci Daniel! Je pense que j'aurais pu chercher longtemps sans jamais arriver à cette solution. La formule fonctionne très bien.

MAIS!

Elle retourne le chiffre inférieur et non supérieur (je peux m'en contenter si ce n'est pas possible)

Dans l'exemple dans le fichier (temps de charge 8h + ampère 1060 + voltage 80) la formule retourne la référence chargeur 80120 qui est correcte car elle retrouve le chiffre 1060 en cellule F32.
Mais si on change les critères de recherche par temps de charge 8h + ampère 1020 + voltage 80 la formule retourne le résultat 8090 en se basant sur la cellule F31 "770" c'est à dire qu'on lui demande de trouver la référence chargeur (colonne A dans BD) pour une batterie de 1020Ah (colonne F dans BD) et comme elle ne trouve pas 1020 elle prend le chiffre inférieur le plus proche la cellule F31 "770" alors qu'idéalement je voudrais que ce soit systématiquement le chiffre supérieur le plus proche donc la cellule F32 "1060" dans cet exemple.

Si vous avez une idée ce serait génial sinon d'avoir trouvé une formule prenant en compte tous ces critères c'est déjà une belle réussite!
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…