RechercherV/Index/EQUIV

Bonjour à tous,

Je débute sur Excel donc j'espère être assez clair pour définir mon problème.

Feuille 1 (base de donnée)

.........2101...2102...2103
P217 ....4.......3......... 5
P218.... 6..................
P219.....5................. 5

Mon produit P217 contient 4 de 2101, 3 de 2102 et 5 de 2103.

Feuille 2

J'aimerais avoir le résultat suivant quand je cherche de quoi est fait P217 par exemple :

P217 2101 4 2102 3 2103 5
P218 2101 6
P219 2101 5 2103 5

Pour rajouter un peu de complexité, j'ai des cases vides dans la feuille 1 et j'aimerais ne pas les avoir dans la feuille 2, exemple P219.

Je vous remercie par avance pour votre aide.

Bonne journée.

5 réponses

  1. Contributeur
    bonjour
    les résultats en 1 cellule ?
    en 6 celulles ?
    ou 2101 4 en 1 cellule, etc ?
    0
    1. Bonjour Michel,

      Pour P217, j'ai 2101 4 2102 3 2103 5, il me faut chaque valeur dans une cellule différente soit 6 cellules.

      Merci pour votre réactivité.

      Cdlt,
      0
  2. Contributeur
    Bonjour Thomas40

    Une autre idée qui affiche ceci

    réf - 2101 Qté 4 réf- 2102 Qté 3 réf - 2103 Qté 5

    voici la formule

    =SI(ESTERREUR(EQUIV($A2;Feuil1!$A$1:$A$10;0));"pas trouvé";SI(Feuil1!B$1&" "&SIERREUR(INDIRECT(ADRESSE(EQUIV($A2;Feuil1!$A$1:$A$10;0);2;3;1;"Feuil1");1);"")=Feuil1!B$1&" ";"";"réf - "&Feuil1!B$1&" Qté "&SIERREUR(INDIRECT(ADRESSE(EQUIV($A2;Feuil1!$A$1:$A$10;0);2;3;1;"Feuil1");1);""))&" "&SI(Feuil1!C$1&" "&SIERREUR(INDIRECT(ADRESSE(EQUIV($A2;Feuil1!$A$1:$A$10;0);3;3;1;"Feuil1");1);"")=Feuil1!C$1&" ";"";" réf- "&Feuil1!C$1&" Qté "&SIERREUR(INDIRECT(ADRESSE(EQUIV($A2;Feuil1!$A$1:$A$10;0);3;3;1;"Feuil1");1);""))&" "&SI(Feuil1!D$1&" "&SIERREUR(INDIRECT(ADRESSE(EQUIV($A2;Feuil1!$A$1:$A$10;0);4;3;1;"Feuil1");1);"")=Feuil1!D$1&" ";"";" réf - "&Feuil1!D$1&" Qté "&SIERREUR(INDIRECT(ADRESSE(EQUIV($A2;Feuil1!$A$1:$A$10;0);4;3;1;"Feuil1");1);"")))

    0
    1. Contributeur
      Bonjour

      Pour un début, tu ne commences pas par le + simple ! ;o)

      maquette utilisant cellules nommées, fonctions decaler, index , equiv
      la taille du tableau peut ^tre agrandie en hauteur et largeur, on peut choisir l'emplacement des 2 tableaux, les noms des ent^tes (autre que 2101,2102...P217, P218 et dans un ordre quelconque)
      On peut masquer les zéros par les options Excel ou par Mise en forme conditionnelles

      https://mon-partage.fr/f/wQQgd84e/

      edit 10:46h
      je ne suis pas l'auteur des "-1" de mes petits camarades...
       Michel
      0
      1. Merci Michel, je vais regarder ça tranquillement. Je ne comprends pas encore toutes les subtilités de la fonction décaler...

        Par contre, je voudrais n'écrire que les valeurs différentes de 0, ex
        P219 2101 1 2102 0 2103 3, mais plutôt
        P219 2101 1 2103 3.

        Je vais essayer de trouver tout seul et si je n'y arrive pas, je reviens vers toi.
        Un grand merci, car je me suis rendu compte que je commençais par quelque chose d'assez complexe et je commençais à perdre patience... :)
        0
      2. Contributeur
        @Thomas40j'ai écris

        "On peut masquer les zéros par les options Excel ou par Mise en forme conditionnelles"

        en effet si il y a des formules en cascade à partir des cellules 0 si il suffit remplacer
        si(lacellule ="" par si(la cellule=0

        sinon tu écris les formules sous cette forme:
        =SI(INDEX(Zone;EQUIV($B10;Feuil1!$A$3:$A$5;0);EQUIV(E10;(Feuil1!$B$2:$D$2);0))=0;"";=INDEX(Zone;EQUIV($B10;Feuil1!$A$3:$A$5;0);EQUIV(E10;(Feuil1!$B$2:$D$2);0))

        bon courage

        errata:
        lire B3:D5 nommé "zone " au lieu de B3:B5
        0
      3. Bonjour Michel,

        En faite, j'aimerais décaler en fonction du résultat d'une formule index. Si je reprends le fichier que tu m'as envoyé:
        Feuille 1
        ........ 2101 2102 2103
        P217 .. 6 ............ 8

        Est-il possible de décaler en fonction du résultat d'une formule index ?
        Pour avoir P217 2101 6 2103 8 et non P217 2101 6 2102 0 2103 8. Je ne sais pas si je suis assez clair.....

        merci par avance (je t'avoue que je galère même si ça va mieux qu'au début...)

        Cdlt,
        0
      4. Contributeur
        @Thomas40Bonjour

        Il faut bien te rendre compte que ce que tu demandes n'est pas forcément facile et que personne ne veut passer parfois plusieurs heures à essayer de résoudre un problème bénévolement pour se voir dire après coup « En fait, j'aimerais..;(rarement, je n'ai pas bien expliqué, excusez moi) il faut en plus que.... »
        0
      5. Ok c'est noté. je vais essayer de trouver et si je trouve, je reviendrais partager.

        Bonne continuation et encore merci pour l'aide apporter.
        0
    2. Contributeur
      Bonjour Thomas40

      Une idée dans le fichier avec la possibilité supplémentaire P220 cas avec 2 données vide en premier

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

      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
      1. Bonjour,

        Alors en admettant que :
        - tu tapes ta recherche dans B1 dans la feuille 2
        - les codes produits sont dans la colonne A de la feuille 1
        - les colonnes 2101, 2102 et 2103 sont respectivement sur les colonnes B, C et D de la feuille 1.

        Voici la formule, bien coton, à mettre par exemple dans la cellule C1 de la feuille 2 :
        =SIERREUR(CONCAT(SI(RECHERCHEV(B1;Feuil1!A2:D4;2)<>"";Feuil1!B1;"");" ";RECHERCHEV(B1;Feuil1!A2:D4;2);" ";SI(RECHERCHEV(B1;Feuil1!A2:D4;3)<>"";Feuil1!C1;"");" ";SI(RECHERCHEV(B1;Feuil1!A2:D4;3)=0;"";RECHERCHEV(B1;Feuil1!A2:D4;3));" ";SI(RECHERCHEV(B1;Feuil1!A2:D4;4)<>"";Feuil1!C1;"");" ";SI(RECHERCHEV(B1;Feuil1!A2:D4;4)=0;"";RECHERCHEV(B1;Feuil1!A2:D4;4)));"Non trouvé !")

        Imbitable !! Mais je pense que ça fait ce que tu veux...

        Tiens-nous au courant.
        -1
        1. Bonjour,

          Ta formule marche en effet mais je voudrais une valeur par cellule. Ex pour P217, j'ai 2101 4 2102 3 2103 5, il me faut chaque valeur dans une cellule différente soit 6 cellules.

          Merci en tout cas!

          cdlt
          0
        2. @Thomas40Bonjour,

          Ca y est je crois que je la tiens !!

          Même hypothèses que ci-dessus, voici les formules de la feuille 2 :
          En C1 : =SI(RECHERCHEV(B1;Feuil1!A2:D4;2)<>0;Feuil1!B1;SI(RECHERCHEV(B1;Feuil1!A2:D4;3)<>0;Feuil1!C1;SI(RECHERCHEV(B1;Feuil1!A2:D4;4)<>0;Feuil1!D1;"")))
          En D1 : =SI(RECHERCHEV(B1;Feuil1!A2:D4;2)<>0;RECHERCHEV(B1;Feuil1!A2:D4;2);SI(RECHERCHEV(B1;Feuil1!A2:D4;3)<>0;RECHERCHEV(B1;Feuil1!A2:D4;3);SI(RECHERCHEV(B1;Feuil1!A2:D4;4)<>0;RECHERCHEV(B1;Feuil1!A2:D4;4);"")))
          En E1 : =SI(RECHERCHEV(B1;Feuil1!A2:D4;2)<>0;SI(RECHERCHEV(B1;Feuil1!A2:D4;3)<>0;Feuil1!C1;SI(RECHERCHEV(B1;Feuil1!A2:D4;4)<>0;Feuil1!D1;""));SI(RECHERCHEV(B1;Feuil1!A2:D4;3)<>0;SI(RECHERCHEV(B1;Feuil1!A2:D4;4)<>0;Feuil1!D1;"");""))
          En F1 : =SI(RECHERCHEV(B1;Feuil1!A2:D4;2)<>0;SI(RECHERCHEV(B1;Feuil1!A2:D4;3)<>0;RECHERCHEV(B1;Feuil1!A2:D4;3);SI(RECHERCHEV(B1;Feuil1!A2:D4;4)<>0;RECHERCHEV(B1;Feuil1!A2:D4;4);""));SI(RECHERCHEV(B1;Feuil1!A2:D4;3)<>0;SI(RECHERCHEV(B1;Feuil1!A2:D4;4)<>0;RECHERCHEV(B1;Feuil1!A2:D4;4));""))
          En G1 : =SI(RECHERCHEV(B1;Feuil1!A2:D4;2)<>0;SI(RECHERCHEV(B1;Feuil1!A2:D4;3)<>0;SI(RECHERCHEV(B1;Feuil1!A2:D4;4)<>0;Feuil1!D1;"");"");"")
          En H1 : =SI(RECHERCHEV(B1;Feuil1!A2:D4;2)<>0;SI(RECHERCHEV(B1;Feuil1!A2:D4;3)<>0;SI(RECHERCHEV(B1;Feuil1!A2:D4;4)<>0;RECHERCHEV(B1;Feuil1!A2:D4;4);"");"");"")

          Totalement incompréhensible...

          J'espère que ça ira.
          0
        3. J'essaye ce soir et je te redis ça !
          0
        4. Ça marche ! Merci pour tout!!
          0