RechercherV/Index/EQUIV
Thomas40
-
Thomas40 -
Thomas40 -
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.
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
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);"")))
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);"")))
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
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
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... :)
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... :)
j'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:
bon courage
errata:
lire B3:D5 nommé "zone " au lieu de B3:B5
"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
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,
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,
Bonjour
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.... »
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.... »
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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.
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.
Bonjour,
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.
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.
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,