Problème de recherche Excel
Résolu/Fermé
cdh0904
-
17 mars 2008 à 22:37
Le Pingou Messages postés 12187 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 14 novembre 2024 - 22 mars 2008 à 18:20
Le Pingou Messages postés 12187 Date d'inscription mercredi 11 août 2004 Statut Contributeur Dernière intervention 14 novembre 2024 - 22 mars 2008 à 18:20
A voir également:
- Problème de recherche Excel
- Liste déroulante excel - Guide
- Si et excel - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Aller à la ligne excel - Guide
- Word et excel gratuit - Guide
9 réponses
Le Pingou
Messages postés
12187
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 novembre 2024
1 449
17 mars 2008 à 23:30
17 mars 2008 à 23:30
Bonsoir cdh0904,
Avec une petite adaptation s’est possible :
Colonne A concaténer B et C
11 1 1 Cedric
12 1 2 Delphine
23 2 3 Maxime
24 2 4 Thomas
25 2 5 Romane
36 3 6 Charline
47 4 7 Xavier
48 4 8 Léon
Sur la feuille 2 en "A1" = 2 et en "B1" = 4
Dans "C1" =RECHERCHEV(A1&B1;Feuil1!A1:D8;4)
Résultat : Maxime
Avec une petite adaptation s’est possible :
Colonne A concaténer B et C
11 1 1 Cedric
12 1 2 Delphine
23 2 3 Maxime
24 2 4 Thomas
25 2 5 Romane
36 3 6 Charline
47 4 7 Xavier
48 4 8 Léon
Sur la feuille 2 en "A1" = 2 et en "B1" = 4
Dans "C1" =RECHERCHEV(A1&B1;Feuil1!A1:D8;4)
Résultat : Maxime
alice.catseyes
Messages postés
122
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
22 mars 2008
1
17 mars 2008 à 23:34
17 mars 2008 à 23:34
Bonjour cdh0904,
La formule Recherche peut-être utilisée si 1 nombre correspond à 1 nom
matrice :
1 cedric
2 delphine
3 maxime
4 thomas
5 romane
6 charline
7 xavier
8 leon
Formule sur Feuil2 dans case B1 "=RECHERCHE(A1;Feuil1!A1:B8)" avec la valeur remplie en A1.
Je cherche pour ta matrice plus complexe... à 3 colonnes
La formule Recherche peut-être utilisée si 1 nombre correspond à 1 nom
matrice :
1 cedric
2 delphine
3 maxime
4 thomas
5 romane
6 charline
7 xavier
8 leon
Formule sur Feuil2 dans case B1 "=RECHERCHE(A1;Feuil1!A1:B8)" avec la valeur remplie en A1.
Je cherche pour ta matrice plus complexe... à 3 colonnes
Mike-31
Messages postés
18346
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
13 novembre 2024
5 104
17 mars 2008 à 23:44
17 mars 2008 à 23:44
Salut,
si desous la même fonction, la deuxième incorpore une conditionnelle afin de ne pas afficher un 0 ou un messassage d'erreur si dans la cellule de selection aucune donnée n'y figure.
=RECHERCHEV($A$2;Feuil1!$A$1:$I$8;2)
=SI($A$2="";"";RECHERCHEV($A$2;Feuil1!$A$1:$I$8;2))
Explication de la formule rechercheV =si($A$2="";"";rechercheV($A$2;Eléve!$A$1:$I$8;2)) " =si($A$2="";""; est une conditionnelle afin qu'il n'y ait pas de résultat dans les cellules notes si aucun n° a été saisie pour la recherche, à mettre ou non. rechercheV est la fonction ($A$2; est la cellule de référence dans laquelle il sera saisie le numéro à rechercher, Feuil1! est le nom de l'onglet de feuille dans lequel la recherche sera faite $A$1:$I$8;est la plage de cellule dans laquelle la recherche doit être faîte et sera plus importante sur ton tableau 2)) est le n° de la colonne dans laquelle sera rechercher l'information et sera donc la cellule au point de jonction du n° sélectionné et de cette colonne.
A+
si desous la même fonction, la deuxième incorpore une conditionnelle afin de ne pas afficher un 0 ou un messassage d'erreur si dans la cellule de selection aucune donnée n'y figure.
=RECHERCHEV($A$2;Feuil1!$A$1:$I$8;2)
=SI($A$2="";"";RECHERCHEV($A$2;Feuil1!$A$1:$I$8;2))
Explication de la formule rechercheV =si($A$2="";"";rechercheV($A$2;Eléve!$A$1:$I$8;2)) " =si($A$2="";""; est une conditionnelle afin qu'il n'y ait pas de résultat dans les cellules notes si aucun n° a été saisie pour la recherche, à mettre ou non. rechercheV est la fonction ($A$2; est la cellule de référence dans laquelle il sera saisie le numéro à rechercher, Feuil1! est le nom de l'onglet de feuille dans lequel la recherche sera faite $A$1:$I$8;est la plage de cellule dans laquelle la recherche doit être faîte et sera plus importante sur ton tableau 2)) est le n° de la colonne dans laquelle sera rechercher l'information et sera donc la cellule au point de jonction du n° sélectionné et de cette colonne.
A+
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 708
17 mars 2008 à 23:50
17 mars 2008 à 23:50
bonjour
C'est effectivement assez compliqué de trouver ta valeur de colonne C en fonction des valeurs A et B.
Si ton tableau est trié comme sur l'exemple, tu peux le faire avec cette formule
tes critères de recherche sont en Feuil2!A1 et Feuil2!B1
ton tableau est en Feuil1!A1:C20
il faut remplacer les 20 par le nombre de lignes de ton tableau
La formule fait l'affichage de la cellule concernée de la colonne C :
=INDIRECT("Feuil1!C"&
que l'on complète par la ligne avec la première position de la colonne A :
EQUIV(Feuil2!A1;Feuil1!A1:A20;0)
+
la première position de la colonne B :
EQUIV(Feuil2!B1;DECALER(Feuil1!A1;
trouvée dans le tableau déterminé par la colonne A décalé d'une colonne :
EQUIV(Feuil2!A1;Feuil1!A1:A20;0);1;20;1);0))
C'est effectivement assez compliqué de trouver ta valeur de colonne C en fonction des valeurs A et B.
Si ton tableau est trié comme sur l'exemple, tu peux le faire avec cette formule
=INDIRECT("Feuil1!C"&EQUIV(Feuil2!A1;Feuil1!A1:A20;0)+EQUIV(Feuil2!B1;DECALER(Feuil1!A1;EQUIV(Feuil2!A1;Feuil1!A1:A20;0);1;20;1);0))
tes critères de recherche sont en Feuil2!A1 et Feuil2!B1
ton tableau est en Feuil1!A1:C20
il faut remplacer les 20 par le nombre de lignes de ton tableau
La formule fait l'affichage de la cellule concernée de la colonne C :
=INDIRECT("Feuil1!C"&
que l'on complète par la ligne avec la première position de la colonne A :
EQUIV(Feuil2!A1;Feuil1!A1:A20;0)
+
la première position de la colonne B :
EQUIV(Feuil2!B1;DECALER(Feuil1!A1;
trouvée dans le tableau déterminé par la colonne A décalé d'une colonne :
EQUIV(Feuil2!A1;Feuil1!A1:A20;0);1;20;1);0))
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
xkristi
Messages postés
4264
Date d'inscription
lundi 18 décembre 2006
Statut
Membre
Dernière intervention
19 août 2022
564
18 mars 2008 à 14:57
18 mars 2008 à 14:57
Bonjour Le Pingou et à tous !
Le plus simple est la solution de LePingou
comme il est difficile de rechercher avec deux colonnes
il faut concaténer pour n'en avoir plus qu'une !
et il faut le faire sur les 2 feuilles , suffit d'avoir insérer une colonne et de frapper la formule
Dans la feuille où on va rechercher l'information il faut que le code recherché soit à gauche de la donnée que l'on veut ramener car on fonctionne par déplacement
Voir le fichier ici :
https://www.cjoint.com/?dso4seZ1a3
Le plus simple est la solution de LePingou
comme il est difficile de rechercher avec deux colonnes
il faut concaténer pour n'en avoir plus qu'une !
et il faut le faire sur les 2 feuilles , suffit d'avoir insérer une colonne et de frapper la formule
Dans la feuille où on va rechercher l'information il faut que le code recherché soit à gauche de la donnée que l'on veut ramener car on fonctionne par déplacement
Voir le fichier ici :
https://www.cjoint.com/?dso4seZ1a3
Le Pingou
Messages postés
12187
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 novembre 2024
1 449
18 mars 2008 à 15:31
18 mars 2008 à 15:31
Bonjour xkristi,
Merci pour le soutien.
Petite remarque, ajouter 1 colonne (concaténation 2 col.) sur la feuille 1 c'est ok.
Pour la deuxième se n'est pas nécessaire on peu simplement le faire directement pour la valeur cherchée : ... A1&B1....
A une prochaine.
Merci pour le soutien.
Petite remarque, ajouter 1 colonne (concaténation 2 col.) sur la feuille 1 c'est ok.
Pour la deuxième se n'est pas nécessaire on peu simplement le faire directement pour la valeur cherchée : ... A1&B1....
A une prochaine.
xkristi
Messages postés
4264
Date d'inscription
lundi 18 décembre 2006
Statut
Membre
Dernière intervention
19 août 2022
564
>
Le Pingou
Messages postés
12187
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 novembre 2024
18 mars 2008 à 15:38
18 mars 2008 à 15:38
Merci pour l'info
C'est agréable de trouver quelqu'un qui va au fond des choses (sourire)
C'est agréable de trouver quelqu'un qui va au fond des choses (sourire)
Le Pingou
Messages postés
12187
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 novembre 2024
1 449
>
xkristi
Messages postés
4264
Date d'inscription
lundi 18 décembre 2006
Statut
Membre
Dernière intervention
19 août 2022
18 mars 2008 à 18:11
18 mars 2008 à 18:11
Bonjour xkristi,
Merci pour le fond des choses.
Mais j'ai oublié de mentionné la superbe formule de gbinforme (au passage :bonne fête de Pâques)
que je me fais un plaisir de décortiquer jusqu'au .....(voir poste 4)
Merci pour le fond des choses.
Mais j'ai oublié de mentionné la superbe formule de gbinforme (au passage :bonne fête de Pâques)
que je me fais un plaisir de décortiquer jusqu'au .....(voir poste 4)
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 708
>
Le Pingou
Messages postés
12187
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 novembre 2024
18 mars 2008 à 22:01
18 mars 2008 à 22:01
bonjour Le Pingou,
Merci et bonnes fêtes pascale à toi aussi et à tous les "forumeurs" mais cela va être aux tisons apparemment...
Merci et bonnes fêtes pascale à toi aussi et à tous les "forumeurs" mais cela va être aux tisons apparemment...
Le Pingou
Messages postés
12187
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 novembre 2024
1 449
>
gbinforme
Messages postés
14946
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
21 mars 2008 à 16:37
21 mars 2008 à 16:37
Bonjour gbinforme,
J'ai étudié avec passion votre formule et j'ai enfin compris le fonctionnement, c'est génial.
Il y a néanmoins une erreur #N/A qui se répète pour les couples 1-1, 2-3, 3-6 ....... et je ne suis pas arrivé à adapter votre formule en conséquence.
Par plaisir j'ai crée une autre formulation qui semble bien fonctionnée la voici :
=SI(EQUIV(A1;Feuil1!A1:A8;0)=EQUIV(B1;Feuil1!B1:B8;0);INDIRECT("Feuil1!C"&EQUIV(B1;Feuil1!B1:B8;0));SI(INDIRECT("Feuil1!A"&EQUIV(B1;Feuil1!B1:B8;0))=A1;INDIRECT("Feuil1!C"&EQUIV(B1;Feuil1!B1:B8;0));"Pas valeur"))
Le tableau de base est :
1 1 Cedric
1 2 Delphine
2 3 Maxime
2 4 Thomas
2 5 Romane
3 6 Charline
4 7 Xavier
4 8 Léon
Bonne fin de journée.
J'ai étudié avec passion votre formule et j'ai enfin compris le fonctionnement, c'est génial.
Il y a néanmoins une erreur #N/A qui se répète pour les couples 1-1, 2-3, 3-6 ....... et je ne suis pas arrivé à adapter votre formule en conséquence.
Par plaisir j'ai crée une autre formulation qui semble bien fonctionnée la voici :
=SI(EQUIV(A1;Feuil1!A1:A8;0)=EQUIV(B1;Feuil1!B1:B8;0);INDIRECT("Feuil1!C"&EQUIV(B1;Feuil1!B1:B8;0));SI(INDIRECT("Feuil1!A"&EQUIV(B1;Feuil1!B1:B8;0))=A1;INDIRECT("Feuil1!C"&EQUIV(B1;Feuil1!B1:B8;0));"Pas valeur"))
Le tableau de base est :
1 1 Cedric
1 2 Delphine
2 3 Maxime
2 4 Thomas
2 5 Romane
3 6 Charline
4 7 Xavier
4 8 Léon
Bonne fin de journée.
Mike-31
Messages postés
18346
Date d'inscription
dimanche 17 février 2008
Statut
Contributeur
Dernière intervention
13 novembre 2024
5 104
18 mars 2008 à 15:38
18 mars 2008 à 15:38
OK super
quand tu jugeras ton problème terminé n'oublies pas de le porter résolu
Merci
quand tu jugeras ton problème terminé n'oublies pas de le porter résolu
Merci
Le Pingou
Messages postés
12187
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 novembre 2024
1 449
22 mars 2008 à 15:54
22 mars 2008 à 15:54
Bonjour Vaucluse,
Merci pour votre information et suggestion :
=SOMMEPROD((Feuil1!A1:A100=C1)*1;(Feuil1!B1:B100=B1)*1;Feuil1!C1:C100)
Tel quel, le résultat de sommeproduit est toujours "0" et en modifiant le "C1" de Feuil1!A1:A100=C1 par "A1"
soit =SOMMEPROD((Feuil1!A1:A100=A1)*1;(Feuil1!B1:B100=B1)*1;Feuil1!C1:C100)
Le résultat est toujours zéro .... est oui la matrice "Feuil1!C1:C100" fait référence à du texte d'où sommeprod =0
Eh bien là je n'ai encore pas sortie la valeur de la colonne "C" correspondante :"Cedric,Delphine......Léon"
Merci pour votre information et suggestion :
=SOMMEPROD((Feuil1!A1:A100=C1)*1;(Feuil1!B1:B100=B1)*1;Feuil1!C1:C100)
Tel quel, le résultat de sommeproduit est toujours "0" et en modifiant le "C1" de Feuil1!A1:A100=C1 par "A1"
soit =SOMMEPROD((Feuil1!A1:A100=A1)*1;(Feuil1!B1:B100=B1)*1;Feuil1!C1:C100)
Le résultat est toujours zéro .... est oui la matrice "Feuil1!C1:C100" fait référence à du texte d'où sommeprod =0
Eh bien là je n'ai encore pas sortie la valeur de la colonne "C" correspondante :"Cedric,Delphine......Léon"
Le Pingou
Messages postés
12187
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 novembre 2024
1 449
>
cdh0904
22 mars 2008 à 18:20
22 mars 2008 à 18:20
Merci cdh0904, de rien.
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 414
22 mars 2008 à 17:29
22 mars 2008 à 17:29
Effectivement, Le Pingou
J'ai utlisé cette formule pour rechercher des montants à partir de texte (dans ce sens ça marche très bien) , mais il ne m'est plus venu à l'esprit (c'est le WE) qu'elle ne marchait pas dans l'autre sens, et contrairement à mon réglement interne, je n'ai pas testé
Avec mes excuses bien plates.
Bon WE
J'ai utlisé cette formule pour rechercher des montants à partir de texte (dans ce sens ça marche très bien) , mais il ne m'est plus venu à l'esprit (c'est le WE) qu'elle ne marchait pas dans l'autre sens, et contrairement à mon réglement interne, je n'ai pas testé
Avec mes excuses bien plates.
Bon WE
Le Pingou
Messages postés
12187
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 novembre 2024
1 449
22 mars 2008 à 18:03
22 mars 2008 à 18:03
Bonjour Vaucluse,
Ne soyez pas désolé, c'est une super idée, j'y ai réflèchi et voila se que l'on obtient :
=INDIRECT("Feuil1!C"&SOMMEPROD((Feuil1!A1:A8=A1)*1;(Feuil1!B1:B8=B1)*1;{1;2;3;4;5;6;7;8}))
Ce qui fonctionne à merveille selon les bases du poste du demandeur.
Il est aussi possible de remplacer {1;2;3;4;5;6;7;8} par la plage d'une colonne que l'on aura créer avec l'incrémentation de 1 à x selon le nombre de ligne désiré (nb identique au matrice de la "Sommeprod" dans notre cas : "X1:X8" = 1;2;3;4;5;6;7;8.
A une prochaine.
Ne soyez pas désolé, c'est une super idée, j'y ai réflèchi et voila se que l'on obtient :
=INDIRECT("Feuil1!C"&SOMMEPROD((Feuil1!A1:A8=A1)*1;(Feuil1!B1:B8=B1)*1;{1;2;3;4;5;6;7;8}))
Ce qui fonctionne à merveille selon les bases du poste du demandeur.
Il est aussi possible de remplacer {1;2;3;4;5;6;7;8} par la plage d'une colonne que l'on aura créer avec l'incrémentation de 1 à x selon le nombre de ligne désiré (nb identique au matrice de la "Sommeprod" dans notre cas : "X1:X8" = 1;2;3;4;5;6;7;8.
A une prochaine.
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 414
22 mars 2008 à 18:14
22 mars 2008 à 18:14
Effectivement.... mais fallait quand même s'en occuper un peu!!!!!!
Bravo.
BCRDLMNT
Bravo.
BCRDLMNT
Le Pingou
Messages postés
12187
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 novembre 2024
1 449
22 mars 2008 à 18:17
22 mars 2008 à 18:17
Merci et bonne fête de Pâques.
22 mars 2008 à 08:22
Pour la forme et sauf erreur de ma part,
N'y avait il pas aussi une autre solution à mon avis ,bien simple avec un code que l'on néglige souvent:
Sur feuil2 la formule:
>En A1, la valeur recherchée sur colonne A feuil1
>E B1, la valeur "" "" sur colonne B feuil1
En C1 la formule:
=SOMMEPROD((Feuil1!A1:A100=C1)*1;(Feuil1!B1:B100=B1)*1;Feuil1!C1:C100)
Cette option fonctionne en principe bien et évite de passer par les concatènations dans des cellules de renvoi.De plus, elle n'est pas limité en nombre d'items et peut donc rechercher une ligne à partir de plus de colonnes.
Bien amicalement.