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 :

Recherche de commun entre deux tableaux


Sujet :

Excel

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Février 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Transports

    Informations forums :
    Inscription : Février 2011
    Messages : 51
    Points : 56
    Points
    56
    Par défaut Recherche de commun entre deux tableaux
    Bonjour à tous,

    Je cherche actuellement à affiner ma volumétrie pour la journée en y associant les circuits.
    Pour cela j'ai mon extraction AS400 en Bleu qui me donne mon code produit+le client qui a commandé+la quantité (Je veux y ajouter le vert - le circuit sur le quel ce produit va allé être préparé). En jaune j'ai les implantations circuits pour chaque produits, et en gris les circuits possibles pour chaque client.

    Nom : Capture.PNG
Affichages : 147
Taille : 41,4 Ko

    Comment dire que le circuit commun entre cette ref et ce client est le circuit 500? index? sommeprod?
    21545 9315201

    Merci

  2. #2
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Je ne vois pas trop comment ce que tu demandes pourrais être possible sans code VBA...
    Sans compter que la façon dont sont classées tes donnés (plusieurs valeurs dans une cellule) va compliquer les choses.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Février 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Transports

    Informations forums :
    Inscription : Février 2011
    Messages : 51
    Points : 56
    Points
    56
    Par défaut
    je peux ajouter à ces données brutes 1 colonne par circuit (qui n'est pas variable) pour le tableau de produits et idem pour celui des clients avec la fonction trouve.

    produit 100 200 250 300 400 470 480 490 500
    214545 100 470 500


    client 100 200 250 300 400 470 480 490 500
    9352454 100 200 250 300 400

    La réponse pour ce client et ce produit est donc le 100.

    Est ce que sur cette forme on peut y arriver?
    J'aimerai ne pas avoir à passer par access.

  4. #4
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut


    Bonsoir,

    les pros des formules tortueuses vont pouvoir s'acharner !

    Mais à mon avis, comme il est question d'une extraction AS400, il serait intéressant de savoir comment est-elle
    incorporée dans d'Excel ? Si c'est via un code VBA, c'est là qu'il faut en profiter pour ajouter le code circuit …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  5. #5
    Membre habitué Avatar de LG-69
    Homme Profil pro
    Analyste statisticien
    Inscrit en
    Juillet 2014
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste statisticien

    Informations forums :
    Inscription : Juillet 2014
    Messages : 162
    Points : 189
    Points
    189
    Par défaut
    Bonjour,

    En effet la difficulté va venir je pense du fait que les cellules "circuit" contiennent plusieurs valeurs.
    Sans ça, la formule ci-dessous devrait répondre au besoin.

    Du coup il reste à faire un travail sur les chaînes de caractères pour en trouver une partie commune... ça pour le moment je ne sais pas faire.

    Nom : Sans titre.JPG
Affichages : 163
Taille : 31,7 Ko

    L'explication de la formule :
    - Les EQUIV recherchent respectivement dans les tableau des produits et des magasins les valeurs que tu recherches (et renvoie la position)
    - Les INDEX récupèrent le code circuit en fonction des positions trouvées par EQUIV
    - Quand on a égalité on affiche le code circuit sinon on écrit "rien"

    Donc si le format de tes champs ne change pas, pour moi, il faut soit travailler sur les chaîne de caractères (je maîtrise pas assez), soit passer par des macros

    en espérant avoir aidé un peu.

  6. #6
    Membre chevronné
    Avatar de NVCfrm
    Homme Profil pro
    Administrateur Système/Réseaux - Developpeur - Consultant
    Inscrit en
    Décembre 2012
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur Système/Réseaux - Developpeur - Consultant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 036
    Points : 1 917
    Points
    1 917
    Billets dans le blog
    5
    Par défaut
    Citation Envoyé par Marc-L Voir le message

    ...

    les pros des formules tortueuses vont pouvoir s'acharner !
    ...
    Bonjour Marc,
    dommage de m'avoir court-circuité avec cette remarque un petit peu ... assommant.
    moi qui aime parfois sortir des sentiers battus du VBA.


    ______________________________________________________________________
    Les tonneaux pleins roulent silencieusement.
    Sous un rayon de soleil, un océan d'obscurité.
    Ousmane


    Quand on tombe dans l'eau, la pluie ne fait plus peur.

  7. #7
    Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Février 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Transports

    Informations forums :
    Inscription : Février 2011
    Messages : 51
    Points : 56
    Points
    56
    Par défaut
    Citation Envoyé par LG-69 Voir le message
    Bonjour,

    En effet la difficulté va venir je pense du fait que les cellules "circuit" contiennent plusieurs valeurs.
    Sans ça, la formule ci-dessous devrait répondre au besoin.

    Du coup il reste à faire un travail sur les chaînes de caractères pour en trouver une partie commune... ça pour le moment je ne sais pas faire.

    Nom : Sans titre.JPG
Affichages : 163
Taille : 31,7 Ko

    L'explication de la formule :
    - Les EQUIV recherchent respectivement dans les tableau des produits et des magasins les valeurs que tu recherches (et renvoie la position)
    - Les INDEX récupèrent le code circuit en fonction des positions trouvées par EQUIV
    - Quand on a égalité on affiche le code circuit sinon on écrit "rien"

    Donc si le format de tes champs ne change pas, pour moi, il faut soit travailler sur les chaîne de caractères (je maîtrise pas assez), soit passer par des macros

    en espérant avoir aidé un peu.

    Merci LG-69 pour cette réponse très intéressante (qui me permettrai en dernier recours de m'en sortir en ajoutant une colonne par circuit)

    Pour pallier à ces problèmes de plusieurs circuits par cellule j'ai extrait et mis en forme autrement mes données.

    Point de départ mes volumes (code Produit + Code d'Unité d'Oeuvre), on veut obtenir le circuit en vert.
    Nom : volumes.PNG
Affichages : 128
Taille : 29,7 Ko

    Un onglet "Implantation" des produits dans chaque circuit où il peut être préparé.
    Nom : implantation.PNG
Affichages : 123
Taille : 21,6 Ko

    Un onglet "MOPCircuit" pour faire la correspondance MOP et circuits possibles.
    Nom : circuitMOP.PNG
Affichages : 120
Taille : 19,7 Ko

    J'ai essayé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SOMMEPROD(((A3=IMPLANTATION!$A$2:$A$46)*(MOPCIRCUIT!$A$2:$A$46=J3))*(MODE(IMPLANTATION!$C$2:$C$46;MOPCIRCUIT!$C$2:$C$46)))
    Sans succès cela m'affiche 0.

    Merci pour le temps que vous accordez à ma requête tordue.

  8. #8
    Membre habitué Avatar de LG-69
    Homme Profil pro
    Analyste statisticien
    Inscrit en
    Juillet 2014
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste statisticien

    Informations forums :
    Inscription : Juillet 2014
    Messages : 162
    Points : 189
    Points
    189
    Par défaut
    Par rapport à ta formule je ne vois pas trop comment elle va pouvoir fonctionner :

    La partie (A3=IMPLANTATION!$A$2:$A$46) te ramène une matrice avec des 0 si le code produit est différent de A3, et de 1 s'il est égal à A3
    La partie (MOPCIRCUIT!$A$2:$A$46=J3) te ramène aussi une matrice de 0 et de 1 mais cette fois-ci basé sur le code magasin

    Par contre quand tu fais le produit de ces deux matrices ça va te faire une matrice incohérente, je ne vois pas la logique de cette matrice résultante.

    Il faudrait rechercher les valeurs commune (autre que 0) de deux matrices obtenues comme ci-dessous (donc la liste des codes circuits communs) et avoir une règle de sélection s'il y en a plusieurs :
    ($A$3=Implantation!$A$2:$A$46)*(Implantation!$C$2:$C$46)) => liste de 0 et de codes circuits répondant au critère code produit
    (MOPCircuit!$A$2:$A$46=$J$3)*(MOPCircuit!$C$2:$C$46)) => liste de 0 et de codes circuits répondant au critère code magasin

    Là comme ça je ne vois pas comment faire... peut-être que quelqu'un de plus câlé que moi en excel ?

  9. #9
    Membre expert

    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2012
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 564
    Points : 3 554
    Points
    3 554
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Le choix d'une autre structure des feuilles Implantation et MOPCircuit, de façon à n'avoir qu'une seule entrée possible pour un code produit dans la feuille Implantation ou pour un code MOP dans la feuille MOPCircuit,
    permet d'obtenir le résultat obtenu dans le classeur joint.
    Les noms Circuits1 , CodeProd, MOP n'ont pas été défini de façon dynamique (ils pourrait l'être avec la fonction DECALER) mais
    même ainsi, il est plus facile de modifier la définition d'un nom que de retoucher toutes les formules lorsqu'une plage s'aggrandit.
    Le nom CalculIndex, lui, définit une partie de la formule de calcul pour ne pas avoir des formules de 2 ou 3 lignes dans les cellules de la
    colonne D de la feuille Volumes.
    Une remarque : la formule utilisant SOMMEPROD n'est intéressante ici que, parce que dans les exemples donnés, un code produit et un code MOP n'ont qu'un seul circuit de commun ;
    si ce n'était pas le cas, il faudrait utiliser une autre fonction que SOMMEPROD comme piste de recherche.
    Cordialement
    Claude
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Nombre d'éléments communs entre deux tableaux
    Par momo-mtl dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 19/02/2015, 10h08
  2. Recherche de sous graphe commun entre deux graphes
    Par fAdoua123 dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 10/10/2010, 00h49
  3. Rechercher partie commune entre deux string
    Par laurent.brechon dans le forum Langage
    Réponses: 2
    Dernier message: 19/07/2010, 16h27
  4. recherche entre deux tableaux
    Par jaarod dans le forum Excel
    Réponses: 4
    Dernier message: 21/10/2008, 10h05

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