RechercherV/Index/EQUIV

Fermé
Thomas40 - Modifié par Thomas40 le 21/01/2017 à 15:24
 Thomas40 - 29 janv. 2017 à 21:56
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
21 janv. 2017 à 17:31
bonjour
les résultats en 1 cellule ?
en 6 celulles ?
ou 2101 4 en 1 cellule, etc ?
0
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 6367 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 2 avril 2024 795
22 janv. 2017 à 12:56
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 23/01/2017 à 10:47
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
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303 > Thomas40
Modifié par michel_m le 23/01/2017 à 13:45
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
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 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303 > Thomas40
25 janv. 2017 à 08:30
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
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 6367 Date d'inscription lundi 16 avril 2012 Statut Contributeur Dernière intervention 2 avril 2024 795
Modifié par PHILOU10120 le 26/01/2017 à 12:13
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 samedi 14 janvier 2017 Statut Membre Dernière intervention 28 janvier 2017 1
21 janv. 2017 à 17:43
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
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 samedi 14 janvier 2017 Statut Membre Dernière intervention 28 janvier 2017 1 > Thomas40
25 janv. 2017 à 18:39
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
J'essaye ce soir et je te redis ça !
0
Ça marche ! Merci pour tout!!
0