Incorporer un critère dans une rechercheV avec multiple résultat
Résolu
artsev
-
Vaucluse Messages postés 26496 Date d'inscription Statut Contributeur Dernière intervention -
Vaucluse Messages postés 26496 Date d'inscription Statut Contributeur Dernière intervention -
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
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
A voir également:
- Incorporer un critère dans une rechercheV avec multiple résultat
- Resultat foot - Télécharger - Vie quotidienne
- Ecran multiple pc - Guide
- Lexer resultat - Télécharger - Sport
- Excel cellule choix multiple - Guide
- Copier coller multiple - Guide
5 réponses
Bonjour.
C'est bien, la retraite ! Surtout aux Antilles ... :-)
Raymond (INSA, AFPA, CF/R)
- 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)
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
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
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"
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"
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
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
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.
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.
... 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
https://www.cjoint.com/c/GArj3wItISe
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"
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"
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
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
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
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
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,
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,
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
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
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
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
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
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
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 ?
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 ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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
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
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
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
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