Comment créer une recherche multicritère ?

Résolu/Fermé
ymike Messages postés 7 Date d'inscription mardi 12 janvier 2016 Statut Membre Dernière intervention 13 janvier 2016 - Modifié par Strumpfette le 13/01/2016 à 16:29
 ymike - 18 janv. 2016 à 17:05
Bonjour,

voici un exemple de grille tarifaire transport
http://www.cjoint.com/c/FAmkglwShQY

Je cherche à créer une formule qui me donne le nom du transporteur le moins cher pour un transport donné.
Exemple :
- département de départ = 50
- type de véhicule = B
- département de destination = 70
- métrage = 3

Le résultat doit être le transporteur Jean pour un montant de 260

Mon véritable tableau contient environ 6000 lignes avec environ 30 transporteurs et cela me faciliterait la vie si vous pouviez m'aider.

Par avance merci.
A voir également:

5 réponses

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
12 janv. 2016 à 11:51
Bonjour,
Je n'ai pas la possibilité d'accéder au fichier ...
Pourrais tu nous indiquer sur quoi tu travailles ? ( quel logiciel de BDD ? )
Access ? Mysql ? SqlServer ? Oracle ? autre ?

Tu parles de "formule" ... hors... avec les bases de données... on parle de requêtes !
Ne serais tu pas sur Excel ???? ... si oui ... je déplacerait ta question dans la bonne section du forum.

Merci.

0
ymike Messages postés 7 Date d'inscription mardi 12 janvier 2016 Statut Membre Dernière intervention 13 janvier 2016
12 janv. 2016 à 11:58
ha désolé !

C'est la première fois que j'utilise le forum
Effectivement je suis sur Excel.
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > ymike Messages postés 7 Date d'inscription mardi 12 janvier 2016 Statut Membre Dernière intervention 13 janvier 2016
12 janv. 2016 à 12:16
pas de soucis.
J'ai déplacé ta question.
Bonne journée.
0
ymike Messages postés 7 Date d'inscription mardi 12 janvier 2016 Statut Membre Dernière intervention 13 janvier 2016 > jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024
12 janv. 2016 à 13:57
merci beaucoup.
0
castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 217
12 janv. 2016 à 18:04
bonjour
Dans excel tu peux faire un tri sur decroissant dans la colonne prix
0
ymike Messages postés 7 Date d'inscription mardi 12 janvier 2016 Statut Membre Dernière intervention 13 janvier 2016
13 janv. 2016 à 08:12
Bonjour,

Ce que je souhaite c'est d'avoir un affichage automatique dans 2 cellules :
dans la première le tarif le moins cher et dans la seconde le transporteur correspondant à ce tarif.

Exemple :
Je rentre ce que je sais
A1 = département de Départ
B1 = Type de véhicule
C1 = département de destination
D1 = métrage
Je cherche à faire afficher
E1 = formule pour le tarif le moins cher ?
F1 = formule pour le transporteur correspondant au tarif le moins cher ?

Il s'agit en fait de recherche multicritères justement pour éviter d'avoir à chaque fois à faire tous les filtres et les tris.
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 395
13 janv. 2016 à 10:44
Bonjour

sous toute réserve de réactivité du fichier dont Michel fait très justement état avec des formules matricielles:

pour la valeur min d'après votre tableau:

=MIN(SI(A:A&C:C&D:D=50&"B"&70;DECALER(A1;;EQUIV(3;2:2;0)-1;1000)))

pour la valeur min d'après votre tableau:
formule matricielle à entrer avec la touche enter en maintenant les touches ctrl et shift enfoncées. Elle doit se retrouver entre accolades dans la barre de formule.

et ensuite pour trouver le nom du transporteur, une formule normale avec l'adresse de la cellule contenant la formule précédente:

=INDEX(B:B;EQUIV(cell;DECALER(A1;;EQUIV(3;2:2;0)-1;1000);0))

formule qui, comme le signale aussi l'ami Michel qui a encore raison, ne vous renverra que le premier trouvé dans le tableau en ca d'ex-aequo.

bien sur les valeurs 50,B,70 et cell sont à remplacer par les rèf des cellules contenant ces valeurs

a essayer, mais probablement bien trop lourd si vous avez un tableau de 6000 lignes à remplir
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856
13 janv. 2016 à 12:25
Bonjour à tous,

je viens de tester sur plus de 8000 lignes avec une matricielle beaucoup plus compliquée que celle de Vaucluse et la réponse est instantanée.
La tienne, Vaucluse présente un léger temps de réaction qui disparaît quand on supprime les colonnes entières.
ça donne
=MIN(SI(A3:A8327&C3:C8327&D3:D8327=50&"B"&70;DECALER(A3;;EQUIV(3;A2:AE2;0)-1;8325)))

cordialement
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 395
13 janv. 2016 à 12:37
Salut JvDo

et merci pour le test, mais il me reste quand même un doute. La formule fonctionne bien sur une ligne. Je crains toutefois que le demandeur veuille ressortir les résultats ligne par ligne sur un tableau de 6000 lignes, c'est à dire 6000 fois la formule!
(on pourrait par contre alors limiter les champs à la ligne 800 si le tableau base de données est complet dans le modèle transmis)

Je pense que c'est ce que Michel à compris et il a sans doute raison!

Bien cordialement
0
JvDo Messages postés 1978 Date d'inscription mercredi 27 juillet 2005 Statut Membre Dernière intervention 28 septembre 2020 856 > Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022
13 janv. 2016 à 12:53
effectivement,

ouille ouille, ça pique les yeux quand on recopie la formule sur 8 300 cellules : 1'05" de recalcul sur mon PC de compet d'il y a 5 ans.

le temps réel n'a qu'à bien se tenir !!

cordialement
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
13 janv. 2016 à 09:57
Bonjour

On pourrait trouver avec une formule matricielle mais avec 6000 lignes j'ai peur que le temps de réponse soit très lent;il faudrait donc passer par du VBA
sinon, que se passe t'il si tu as >=2 transporteurs qui ont le m^me tarif ?
0
ymike Messages postés 7 Date d'inscription mardi 12 janvier 2016 Statut Membre Dernière intervention 13 janvier 2016
13 janv. 2016 à 10:47
Le VBA dépasse mes capacités ... pour l'instant.
Effectivement c'est une bonne question si plusieurs transporteurs ont le même tarif le choix se fait alors par consultation.
De ce que je comprends, j'ai peur de devoir investir dans un logiciel type TMS (Transport Management System) ... ou de me former à la VBA ...
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303 > ymike Messages postés 7 Date d'inscription mardi 12 janvier 2016 Statut Membre Dernière intervention 13 janvier 2016
Modifié par michel_m le 13/01/2016 à 11:33
Ok, on va passer quand m^me par du VBA vu le nombre de lignes et les potentiels exæquos
on envoie sur toute la France métropolitaine (Corse comprise) ?
On part que des département 50 et 60?
liste des types de camions: B, P...?

sois patient.
0
PHILOU10120 Messages postés 6368 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 22 avril 2024 796
Modifié par PHILOU10120 le 13/01/2016 à 12:29
Bonjour

Une idée de fichier mais il y a surement plus simple

http://www.cjoint.com/c/FAnlxzVtIRx

La base feuil2 doit être triée colonne A du plus petit au plus grand et colonne C idem

C'est en forgeant que l'on devient forgeron. -  C'est au pied du mur que l'on voit le maçon - on apprend toujours de ses erreurs
0
castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 217
13 janv. 2016 à 16:34
Bonjour
Le lien a été crée : https://www.cjoint.com/c/FAnpF7MRsXF
Dans ce lien ton fichier excel trié sur les 2 colonnes mentionnés en utilisant l'outil de tri d'excel
0
ymike > castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019
18 janv. 2016 à 17:05
CASTOURS ET PHILOU VOUS AVEZ RESOLU MON PROBLEME !!! j'ai adapté les formules à mon tableau et ça fonctionne !!

un grand merci.
0
ymike Messages postés 7 Date d'inscription mardi 12 janvier 2016 Statut Membre Dernière intervention 13 janvier 2016
13 janv. 2016 à 17:01
Bonjour Philou,

ça fonctionne !

C'est vrai qu'il est intéressant pour moi d'avoir la liste des transporteurs avec une mise en forme conditionnelle mettant en valeur le prix le plus bas, car parfois, je ne sélectionne pas le moins cher (problème qualité ...).

Je vais essayer d'adapter tout ça à mon tableau de 6000 lignes ... affaire à suivre.

Merci.
0
castours Messages postés 2955 Date d'inscription lundi 18 septembre 2006 Statut Membre Dernière intervention 31 août 2019 217 > ymike Messages postés 7 Date d'inscription mardi 12 janvier 2016 Statut Membre Dernière intervention 13 janvier 2016
13 janv. 2016 à 18:02
bonjour
est ce ma solution?
0

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

Posez votre question
PHILOU10120 Messages postés 6368 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 22 avril 2024 796
13 janv. 2016 à 18:50
Bonjour

Le fichier avec une modification sur le type de véhicule à fin d'éviter la sélection d'un code absent.

http://www.cjoint.com/c/FAnrYiZt7wx
0