RechercherV/Index/EQUIV

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.

5 réponses

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
bonjour
les résultats en 1 cellule ?
en 6 celulles ?
ou 2101 4 en 1 cellule, etc ?
0
Thomas40
 
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
PHILOU10120 Messages postés 6445 Date d'inscription   Statut Contributeur Dernière intervention   824
 
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
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
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
Thomas40
 
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
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314 > Thomas40
 
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:
=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
Thomas40
 
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
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314 > Thomas40
 
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.... »
0
Thomas40
 
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
PHILOU10120 Messages postés 6445 Date d'inscription   Statut Contributeur Dernière intervention   824
 
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

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

Posez votre question
DSBix Messages postés 23 Date d'inscription   Statut Membre Dernière intervention   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
Thomas40
 
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
DSBix Messages postés 23 Date d'inscription   Statut Membre Dernière intervention   1 > Thomas40
 
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.
0
Thomas40
 
J'essaye ce soir et je te redis ça !
0
Thomas40
 
Ça marche ! Merci pour tout!!
0