Incorporer un critère dans une rechercheV avec multiple résultat

Résolu/Fermé
artsev - Modifié par artsev le 16/01/2017 à 17:06
Vaucluse Messages postés 26495 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 8 avril 2022 - 30 janv. 2017 à 09:33
Bonjour,

après plusieurs recherche je vous présente ma problématique (n'ayant pas trouvé de solution)

sur un tableur excel j'ai une feuille(1):

A------B-------C--------D---------E---------F------G--------H--------I
aaa---aaa-----ref------aaa------aaa------aaa----aaa------aaa-----saisie de la formule
etc.

une seconde feuille(2) ou j'ai:

A------B---------C--------D--------E
aaa---ref(1)----ss ref---aaa-----ref discriminante
etc.

je cherche à faire apparaitre en I(1) les valeurs présente de la colonne C(2) selon la référence C(1) [présente également en B(2) uniquement dans le cas où la colonne E(2) contient une ref discriminante (pas trop complexe puisque ici il y a seulement présence ou non d'une valeur)

à savoir que ma colonne C(2) peut avoir plusieurs sous référence pour ma référence en B

en espérant avoir était assez claire je peux difficilement transmettre un tableur puisque ce sont des données sécurisé (j'espère que mon schéma basique pourra aider à la compréhension :) )

en vous remerciant d'avance
A. Sev

5 réponses

Raymond PENTIER Messages postés 56979 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 26 janvier 2023 17 177
Modifié par Raymond PENTIER le 16/01/2017 à 17:10
Bonjour.
  • Simple rappel : la fonction RECHERCHEV ne renvoie qu'un résultat unique.
  • On n'a pas besoin de tes vraies données sécurisées ; il te suffit de créer un fichier (le tableur, c'est Excel ...) avec des données bidon, mais exactement la même structure ... et tu nous le transmets avec CJoint.com

C'est bien, la retraite ! Surtout aux Antilles ... :-) 
Raymond (INSA, AFPA, CF/R)
0
merci pour le tuyeau ;)
du coup qu'elle formule je devrais utiliser pour résoudre ma problématique

donc un fichier exemple (la feuille deux et c'elle ou j'ai ma formule à entrée et la feuille une la ou les données sont presents


http://www.cjoint.com/c/GAqqwr8hs6W
0
Vaucluse Messages postés 26495 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 8 avril 2022 6 304
16 janv. 2017 à 17:26
Bonjour
mettez à disposition un modèle, même avec des infos bidonnées,mais conforme à votre configuration ici:
https://www.cjoint.com/
créez lke lien sur le site et revenz le coller ici
(ajoutez quelques exlications)
il y a plusieurs solutions pour traiter le problème, voir votre modèle permettra de vous proposer la mieux adaptée
à vous lire
crdlmnt

0
Raymond PENTIER Messages postés 56979 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 26 janvier 2023 17 177
16 janv. 2017 à 17:48
Bonjour artsev.

Après un quart d'heure passé à essayer de comprendre tes explications, j'en suis arrivé à supposer que ce tu appelles feuille(1) est en réalité la Feuil2 de ton fichier-exemple, et feuille(2) la Feuil1 ; ai-je vu juste ?

Et dans ce cas, ce que tu désignes par I(1), c'est donc Feuil2!I:I ?

Par contre, même avec le fichier fourni, je n'ai toujours pas compris la manipulation "faire apparaitre en I(1) les valeurs présente de la colonne C(2) selon la référence C(1) [présente également en B(2) uniquement dans le cas où la colonne E(2) contient une ref discriminante"
0
Bonjour, oui en effet le schema archaïque du premier post et bien dans ce sens de lecture par rapport au fichier,

Et bien je cherche à faire apparaitre dans la colonne I de la feuille 2 les données de la colonne C de la feuille 1 mais uniquement si elle possède une données enregistrée en E (ref critique) de la feuille 1,

et le seul angle d'attaque que me semblais logique était de faire le tri dans les données à l'aide de la reference de depart (colonne C de la feuille 2 / colonne B de la feuille 1)

voilà merci pour votre temps
0
Vaucluse Messages postés 26495 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 8 avril 2022 6 304
Modifié par Vaucluse le 17/01/2017 à 10:44
Bonjour
voyez ici et dites nous si ça vous convient
sinon, dites nous ce qui ne va pas.
explications en feuille 2
https://www.cjoint.com/c/GArjMCGlXne
crdlmn

Ps: pour associer les deux tableaux, il manque une information dans votre second message, à savoir quel est l'argument de feuil2 à rajouter pour identifier la ligne à prendre en compte en feuille 1
Et si c'est la colonne A de feuil1, je vous conseille de défusionner la cellule et de placer le nom du fournisseur sur toutes les lignes de A2 à A10
Revenez si besoin avec complément d'info.
0
Vaucluse Messages postés 26495 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 8 avril 2022 6 304
17 janv. 2017 à 10:56
... et pour illustrer mon précédent ps, un second fichier avec deux versions (une fois A défusionnée en Feuil1
https://www.cjoint.com/c/GArj3wItISe
0
artsev > Vaucluse Messages postés 26495 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 8 avril 2022
17 janv. 2017 à 14:00
Bonjour, merci d'avance pour le temps que vous avez pris,
et bien pour répondre à votre question tout d'abord:
L'argument de selection de feuil2 est la colonne C (intitule Part#) information équivalente à la colonne B de feui1 (intitule ref).
C'est la ou un premier problèmes se pose car pour une ligne avec une réf. en feuil2 je peut avoir plusieurs lignes "sous ref" de la feuil1

Ce que j'aimerais faire apparaitre sont les informations "sous ref" portant un critère "ref critique" sachant que pour une donnée "ref" je peut avoir plusieurs données en "sous ref"
0
Vaucluse Messages postés 26495 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 8 avril 2022 6 304 > artsev
Modifié par Vaucluse le 17/01/2017 à 18:12
Re
il y a quelque chose qui ne va pas.
on déduit de votre demande que vous voulez sortir la sous-ref selon la présence d'un critère ref critique en E
mais si on prend par exemple la ref 2 en B de feuil1, on à sauf erreur des lignesde 5 à 8 qui correspondent à la référence 2 et trois lignes 6 à 8 qui comportent une référence en E (1 2 3)
Il faut jouer ça au dés pour en choisir une? Sans information sur la ref en E il n'y a pas de recherche possible, sauf à trouver la 1° en ligne D6
et par ailleurs s'il n'y a pas de ref en E on ressort quoi?
On ne peut même pas utiliser le ciode fournisseur puisqu'il n'y a pas de relation entre ce code et le tableau de base.


à vous lire
0
Vaucluse Messages postés 26495 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 8 avril 2022 6 304
18 janv. 2017 à 19:02
Bonsoir
voyez ici si ça vous convient
deux options avec deux tableaux (toujours avec des formules matricielles)
https://www.cjoint.com/c/GAsr4xHIQUe

le 1° regroupe les valeurs dans une même cellule, mais il y a des limites selon le nombre de codes que vous pouvez avoir à afficher (voir la fomule qui "encaisse" 5 codes, mais qui peut s'allonger encore... un peu)
Il suffit de coller un & suivi d'un nouvel item; complet SIERREUR(..........);"") en remplaçant le dernier chiffre (5 dans le modèle) par le rang suivant

Le second tableau n'utilise qu'une formule par cellule et le tout peut être "tiré" vers la droite, la prise en compte du rang est automatique.

crdlmnt
0
Bonjour,
alors la structure du coup correspond tout à fait à ce que je recherche, je m'orienterais plus vers le second modèle qui me semble plus simple à l'usage et plus stable :)

juste une elements qui me pose probleme, le résultats afficher est donc la réf critique (colonne E de feuil1) ou bien c'est la sous reference (colonne C de feuil1) ? car c'est cette dernière que je recherche

pourriais vous me transmettre plus d'information sur votre seconde formulation pour me permettre d'en avoir une meilleurs comprehension,

merci beaucoup pour votre aide et votre temps;
cordialement,
0
Vaucluse Messages postés 26495 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 8 avril 2022 6 304 > artsev
Modifié par Vaucluse le 19/01/2017 à 16:31
Re
La formule en O18
Effectivement, pour avoir la valeur de C, il faut changer derrière INDEX le E1 :E13 en C1 :C13

=SIERREUR(INDEX($C$1:$C$13;PETITE.VALEUR(SI($B$5:$B$13=$I18;SI($E$5:$E$13<>"";LIGNE($A$5:$A$13)));COLONNE(A$1)));"")

Quelques explications, (mais ça ne va pas être facile par message)

Base de la formule :
=INDEX(plage ;N° de ligne ; N° de colonne)
(N° dans la plage, pas ceux des règles de la feuille)

Dans notre cas
La plage est le champ C1 :C13 (donc une seule colonne)

Définir le N° de ligne :
PETITE.VALEUR(SI($B$5:$B$13=$I18;SI($E$5:$E$13<>"";LIGNE($A$5:$A$13)));COLONNE(A$1))
LIGNE() ou COLONNE() renvoie le N° (dans la feuille) de la ligne ou de la colonne où elle se trouve
Exemple LIGNE(A1) renvoie 1, LIGNE(A2) renvoie 2 COLONNE(A$1= renvoie 1 etc>…

PETITE.VALEUR(SI($B$5:$B$13=$I18;SI($E$5:$E$13<>"";
Identifie toutes les lignes qui contiennent I18 en B et une valeur en E soit donc <>"" et les prend en compte (d'où le matriciel)

LIGNE($A$5:$A$13)));COLONNE(A$1))
Ressort de la liste des n° de ligne détectés (de la feuille puisque LIGNE(A5 :A13)) celui qui à la plus petite valeur au rang indiqué par COLONNE(A$1), c’est-à-dire la valeur la plus basse en O la seconde en P la troisième en Q etc. lorsqu’on tire la formule vers la droite puisque le A de COLONNE n’est pas bloqué

Ainsi donc, on obtient le N° de ligne attendu par INDEX qui lui, commence en ligne 1 pour éviter une correction (sinon, en commençant aussi en 5, il aurait fallu écrire
PETITE.VALEUR(SI($B$5:$B$13=$I18;SI($E$5:$E$13<>""; COLONNE(A$1))-4 pour réaligner avec le départ d’index (car INDEX demande le N° de ligne de la plage, alors qu’on ressort le N° de ligne de la feuille)

Définir le N° de colonne
On s’en passe ici puisque le champ INDEX n’a qu’une colonne, et donc par défaut, Excel traite la seule valeur disponible


Voila, c'est à peu près tout ce que je peux faire pour vous, en espérant avoir été assez clair.

crdlmnt
0
Re,
merci pour les explications, cela m'aide à mieux comprendre la formulation (puisque je vais devoir l'appliquer sur d'autre cas similaire dans la structure mais il me faudra realizer une selection différentes)

j'ai juste un petit soucis, pour tester l'ensemble j'ai changer les valeurs de la colonne C (feuil1) pour voir si cela modifier le tableau en actualisant la case de calcul (avec ctrl+shift+entrée pour conserver le format matricielle) mais cela ne m'maffiche pas les nouvelles données inscrite

un grand merci pour votre aide et merci beacoup pour votre explication qui est assez Claire pour permettre à un neophyte de comprendre :)

http://www.cjoint.com/c/GAtqARrST3W
le lien de la fiche sur laquelle j'ai apporter les modif sur ma feuil1 et qui n'apparaise pas sur la zone de calcul
0
Vaucluse Messages postés 26495 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 8 avril 2022 6 304 > artsev
19 janv. 2017 à 17:42
Je ne vois que la 1°ligne de mofiée 2 au lieu de 1

Ceci dit, ....ben.....il faudrait modifer le E1:E13 de INDEX en C1:C13 sur toutes les formules du tableau, pas seulement en 019,P19,Q19

modifiez en O18 sélectionnez la cellule et "tirez" la cellule sur tout le tableau, elle va s'ajuster partout
et ça ira peut être mieux

revenez si ça ne va pas
Crdlmnt
0
Bonjour,
j'ai bien essayé en tirant la cellule sur tout le tableau mais pas d'amélioration,
le problem pourrait t'il venir de la selection de ligne par INDEX puisqu'il cherche sur une plage et que on resort le N° de ligne de la feuille ?

c'est dommage car ces le derniers elements qui me bloque pour pouvoir la mettre en application :'(

sinon le fait d'avoir changer les données de depart ne vient t'il pas bloquer un elements de la formule ?
0

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

Posez votre question
Raymond PENTIER Messages postés 56979 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 26 janvier 2023 17 177
17 janv. 2017 à 14:36
Bonjour artsev.

Feuil2 contient un tableau de calculs qui récupère des informations dans Feuil1 ; donc Feuil1 est une BASE DE DONNÉES ; et comme toute base de données elle ne doit contenir ni cellules fusionnées (colonne A) ni cellules non renseignées (B3:B4, B6;B9) alors qu'elles servent au processus de recherche.
Tu dois ainsi monter ta base : https://www.cjoint.com/c/GArnGAIQeVB
-1
ok,
donc je doit construire ma feuil1 en base de donnée (qui à faire apparaitre mon fournisseur à chaque ligne, de meme pour chaque réf que j'inscrit (les données en colonne B) sur lesquels je me fixe pour récuperer les sous references,
alors du coup est il possible ou pas:
je construit ma base de donnée en feuil1
sur cette base de données j'ai comme informations utile:
- ma réf principale
- qui peut inclure une à plusieurs sous reference,
- sous reference elle meme discriminé par un critère critique ou pas

de faire apparaitre en feuil2:
un calcul qui pour chaque reference recherché me fait apparaitre toutes mes sous references critiques liée à cette reference.

celà est il possible ?

encore merci pour votre temps
0
Raymond PENTIER Messages postés 56979 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 26 janvier 2023 17 177 > artsev
17 janv. 2017 à 16:29
étant donné qu'on m'a déjà affublé d'une note négative, j'en déduis que mon approche du problème n'est pas la bonne, et donc je cesse d'intervenir dans cette discussion ...
celui qui a pris cette initiative saura très probablement te donner la solution !
0
artsev > Raymond PENTIER Messages postés 56979 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 26 janvier 2023
17 janv. 2017 à 17:26
et bien merci tout de meme pour l'aide apportez en espérant que l'on me donnera la solution :) (je dirais quand meme que l'approche n'est pas mauvaise puisqu'elle ma éclairé sur différents elements) un grand merci
0