IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

aller chercher une valeur dans une base de donnée répondant à plusieurs critères (sans VBA si possible)


Sujet :

Excel

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Chargé d'affaire
    Inscrit en
    Avril 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Avril 2015
    Messages : 2
    Points : 1
    Points
    1
    Par défaut aller chercher une valeur dans une base de donnée répondant à plusieurs critères (sans VBA si possible)
    Chers amis bonjour,
    C’est ma première participation dans ce forum que je viens de découvrir et qui me plait bien. J'aimerais que vous m'aidiez à résoudre un petit problème qui commence à me désespérer, étant donné que je suis novice en VBA et que mes connaissances en fonction Excel sont loin d'être affutées.

    Mon objectif est simple à concevoir : aller chercher une information dans un tableau à trois entrées, donc sur trois conditions. Petites précisions :

    1/ j'ai deux feuilles Excel 2010 : une base de données (environ 6 000 lignes), avec des informations du type DATE/VEHICULE/HEURE_PASSAGE et une feuille export (environ 400 lignes), avec des informations du type DATE/VEHICULE/HEURE_JOURNEE/TRAJET/COEFFICIENT. Je souhaite alimenter ma base de données à partir d'information de ma feuille export.

    2/ dans ma base de données et mon export, les informations de DATE/VEHICULE peuvent être identiques sur plusieurs lignes alors que l'HEURE_PASSAGE et HEURE_JOURNEE/TRAJET/COEFFICIENT varient.

    3/ je cherche une formule me permettant d’aller chercher dans ma "feuille export" les informations spécifiques TRAJET et COEFFICIENT, selon des critères déterminés et les introduire dans ma "base de données" aux lignes répondant aux critères.
    Mes critères sont :
    - si la DATE base de données = DATE export ;
    - si le VEHICULE base de données = VEHICULE export ;
    - si l'HEURE_PASSAGE < la plus petite des deux HEURE_JOURNEE correspondante à la DATE et au VEHICULE
    *** Attention petite subtilité : il existe souvent 2 valeurs HEURE_JOURNEE pour une même DATE et un même VEHICULE. Or si l'HEURE_PASSAGE est < la plus petite des 2 HEURE_JOURNEE alors il faut lui attribuer un TRAJET (trajet A), sinon un autre TRAJET correspond (trajet B).


    Pour finir, mes remarques : la fonction Recherchev ne me permet pas d'aller chercher une information répondant à de multiples critères et je n'ai pas de clé unique associant mes critères ... Comme je vous l'ai dit précédemment, pour une même DATE et un même VEHICULE, je peux avoir 2 TRAJETS d'où mon troisième critère.
    Les fonctions matricielles, Index ou Equiv ou Bdlire, ne me permettent pas d'introduire toutes les occurrences, elles s'arrêtent aux premiers enregistrements trouvés.

    Vous l'aurez compris, sans aide, ni petit coup de pouce, je risque de chercher encore longtemps... C'est pourquoi je m'adresse à vous, amis éclairés et amateurs de challenge pour m'orienter vers une solution...

    Si besoin, je vous transmettrai mon fichier.

  2. #2
    Membre actif
    Homme Profil pro
    Enthousiaste Excel
    Inscrit en
    Avril 2015
    Messages
    155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Enthousiaste Excel

    Informations forums :
    Inscription : Avril 2015
    Messages : 155
    Points : 242
    Points
    242
    Par défaut
    J'ai du relire 7 ou 8 fois pour comprendre le point 3.3, mais je crois avoir compris.

    D'après ce que je lis, ton problème pourrait probablement être très simple à résoudre sur Access. Mais ce n'est peut être pas ce que tu souhaites.

    A priori, ton problème, uniquement avec des formules, c'est compliqué. A moins de faire quelques manip un peu chiantes.

    Si tu te lances la dedans :

    Pour pouvoir traiter ta base il faudrait créer une table :

    DATE/VEHICULE/HEURE_JOURNEE_MAX/HEURE_JOURNEE_MIN
    (faisable en un TCD, ou avec une formule en matrice)

    Ensuite, dans toutes tes tables, tu créé un champ qui concatène DATE et VEHICULE, et tu t'esn serviras comme clef pour tes rechercheV.

    Dans ta feuille base de données, tu utilises cette clef pour ramener des données de la nouvelle table du dessus.

    tu auras donc heure de passage MIN et MAx + heures de journée sur la même ligne. Tu fais ton calcul pour savoir quelle DATES correspond à ce que tu souhaites.

    Enfin, tu utilises cette date comme clef a jouter a ta concaténation pour rappatrier les données de la table export .


    C'est un peu brouillon, je sais, mais tente déjà comme ça, si tu peux.

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Chargé d'affaire
    Inscrit en
    Avril 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Avril 2015
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    Je comprends bien l'étape du TCD et de la concaténation, mais les étapes suivantes restent floues.
    J'avais déjà essayé d'organiser les informations de mon onglet Export dans un TCD. J'ai réussi à obtenir le nombre de trajets réalisé par les camions/date (date en ligne, numéro des camions en colonnes et nombre de trajets aux intersections date/camion correspondant). Par contre je n'ai pas réussi faire correspondre le(s) nom(s) du trajet...
    J'ai également essayé avec la fonction Excel BDLIRE... Mais elle nécessite des critères définis dans un tableau sur 2 lignes, une pour les champs et la seconde pour les critères correspondants. Or comme je souhaite faire "glisser" ma formule sur toute une colonne, ça ne fonctionne pas. Et je n'ai pas réussi à trouver le moyen de fixer la première ligne de mon tableau de critère...

    Pour plus de clarté, voici mon fichier modèle : http://cjoint.com/?EDCsk4e3XZI

    Précision sur l'organisation :
    * Dans l'onglet "base de donnees" j'ai surligné les données en jaune les données pour lesquelles je souhaiterai automatiser la recherche.
    * Je souhaite appliquer la formule à sur l'ensemble des lignes de mon tableau "base de donnees".
    * pour une date et un véhicule identiques, il peut y avoir 2 trajets.


    Si vous avez encore des questions, n'hésitez pas.
    Encore merci pour le petit coup de pouce!
    Par exemple pour le 17/03/2015, le véhicule AAA00002 a réalisé deux trajets identifiés par des valeurs du type "3T1" et "3T2". T1 correspond au trajet 1, terminé à 18:46 et T2 au trajet 2 terminé à 20:43. Pour faire simple, j'ai de multiples trajets et mes véhicules en parcours 2 par jour.
    Mon argument est si l'heure de la Base de donnée est inférieur/égal la plus petite des deux HEURES relatives aux trajets de l'Export correspondantes à la même DATE et au VEHICULE, alors il faut lui attribuer le trajet 1, sinon ce sera le trajet 2.

    * Pour plus de précision, les dates sont croissantes. Les codes véhicules sont enregistrés de manière aléatoire : on a un AAA05208, puis un AAA05220, AAA05219, puis AAA05212... Par contre, les heures associées aux véhicules sont, elles, croissantes et se succèdent. Par exemple,

    VEHICULE DATE HEURE TRAJET
    AAA05208 01/01/2015 18:53 BB130151
    AAA05208 01/01/2015 20:54 BB130152
    AAA05220 01/01/2015 17:19 BB130011
    AAA05220 01/01/2015 19:23 BB130012
    AAA05219 01/01/2015 17:13 BB130021
    AAA05219 01/01/2015 19:15 BB130022
    AAA05212 01/01/2015 17:52 BB130031
    AAA05212 01/01/2015 20:14 BB130032


    * Après vérification, je viens de trouver pour une même date, une référence d'un véhicule pour 1 trajet située entre la référence d'un deuxième véhicule qui lui a fait 2 trajets...
    Ce qui donne :

    VEHICULE DATE HEURE TRAJET
    AAA05218 12/03/2015 19:18 BB130091
    AAA05217 12/03/2015 21:24 BB130092
    AAA05218 12/03/2015 22:05 BB130111
    AAA05207 12/03/2015 20:50 BB130142
    AAA05209 13/03/2015 19:14 BB130151
    AAA05209 13/03/2015 20:58 BB130152

    J'ai trouvé aussi pour une journée, un véhicule qui a fait 3 trajets... Ce cas de figure ne s'est produit que pour 1 journée et 1 véhicule. C'est donc très ponctuel. Je pourrais réfléchir à "encadrer" les heures de la Base de donnée par les heures Export.

  4. #4
    Membre actif
    Homme Profil pro
    Enthousiaste Excel
    Inscrit en
    Avril 2015
    Messages
    155
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Enthousiaste Excel

    Informations forums :
    Inscription : Avril 2015
    Messages : 155
    Points : 242
    Points
    242
    Par défaut
    Mouai, après réflexion,

    je comprends mal ton "3.3" de ton explication. Si j'ai bien compris, tu veux attribuer un trajet différent à chaque ligne, en suivant l'ordre chronologique.

    Si c'est ça, la solution est peut être simple

    D'abord, insère une colonne de concaténation de date et véhicule

    Ensuite, fait un tri sur DATE puis VEHICULE puis HEURE (exemple:en A)

    insère ensuite une autre colonne qui permet d'obtenir le rang de ta clef (en colonne B de tes données)

    genre en B2Concatène les deux encore une fois tu auras un truc qui ressemblera à

    1_AAA00001_12/03/2015
    2_AAA00001_12/03/2015
    1_AAA00001_14/03/2015
    2_AAA00001_14/03/2015

    Fais la même chose sur les deux feuilles et tu pourras faire un recherchev qui colle.


    Pas excel chez moi, je tente avec openoffice.

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/04/2015, 11h17
  2. quand je selectionne une valeur dans une liste, retourne une autre valeur
    Par nsqualli dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 29/12/2008, 14h23
  3. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48
  4. Réponses: 1
    Dernier message: 25/09/2006, 17h15
  5. Mettre une valeur d'une table dans une variable
    Par Raphou96 dans le forum Access
    Réponses: 5
    Dernier message: 06/02/2006, 15h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo