[EXCEL 2007] - Recherche colonne non triée
Fermé
Jodko
-
Modifié par Jodko le 20/09/2011 à 17:32
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 - 21 sept. 2011 à 12:44
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 - 21 sept. 2011 à 12:44
A voir également:
- [EXCEL 2007] - Recherche colonne non triée
- Déplacer une colonne excel - Guide
- Formule somme excel colonne - Guide
- Trier colonne excel - Guide
- Liste déroulante excel - Guide
- Figer colonne excel - Guide
11 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 310
Modifié par michel_m le 20/09/2011 à 17:50
Modifié par michel_m le 20/09/2011 à 17:50
bonjour
par exemple
rechercheV sur une colonne B non triée (B1:B16), valeur cherchée en A1
=Si(NB.SI(B1:B16;A1)=0;"";RECHERCHEV(A1;B1:D16;2;0)
Le zéro en dernier paramètre recherche la 1° valeur exacte
Michel
par exemple
rechercheV sur une colonne B non triée (B1:B16), valeur cherchée en A1
=Si(NB.SI(B1:B16;A1)=0;"";RECHERCHEV(A1;B1:D16;2;0)
Le zéro en dernier paramètre recherche la 1° valeur exacte
Michel
Re bonjour,
Le fichier expurgé de toute données sensible.
http://www.cijoint.fr/cjlink.php?file=cj201109/cijkkF6vcM.xlsx
Le groupe de cellules de gauche, c'est la version non triée (avec INDEX ou RECHERCHEV) de manière croissante, le groupe à droite c'est la version triée par ordre croissant.
Le bon résultat est 2, pas 3.
Jodko.
Le fichier expurgé de toute données sensible.
http://www.cijoint.fr/cjlink.php?file=cj201109/cijkkF6vcM.xlsx
Le groupe de cellules de gauche, c'est la version non triée (avec INDEX ou RECHERCHEV) de manière croissante, le groupe à droite c'est la version triée par ordre croissant.
Le bon résultat est 2, pas 3.
Jodko.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 414
Modifié par Vaucluse le 20/09/2011 à 18:54
Modifié par Vaucluse le 20/09/2011 à 18:54
Bonjour
la proposition de michel, remontée en tête de fil correspond à ce que vous cherchez et s"applique aussi au code EQUIV
Soit un ;0 en fin de formule RECHERCHE ou EQUIV à la place du 1 pour éviter le classement
Mais à priori vous n'aviez pas tout dit puisque vous ne cherchez qu'une partie de la valeur affichée ??
La formule qu'il vous faut en conséquence, en C2 sur votre fichier, dans le champ non classé est:
{=INDEX(B4:B6;(EQUIV("1,43";GAUCHE(C4:C6;4);0);1)}
cette formule est matricielle est doit donc être entrée avec la touche Enter en maintenant ctrl et shift enfoncées.Elle se retrouve entre accolade lorsque cette entrée est effectuée
Crdlmnt
Ps
si vous voulez faire référence à une cellule pour entrer la valeur cherchée, remplacer dans la formule "1,43" par l'adresse de cette cellule et entrer la valeur cherchée en la précédant de l'apostrophe'
ou alors écrivez la formule comme suit pour que la valeur reste numérique:
{=INDEX(B4:B6;(EQUIV(cellule;GAUCHE(C4:C6;4)*1;0);1)}
pour terminer, si vous cherchez à partir de la cellule (D2 par ex) un nombre variable de chiffre en tête de nombre:
{=INDEX(B4:B6;(EQUIV(D2;GAUCHE(C4:C6;NBCAR(D2))*1;0);1)}
Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
la proposition de michel, remontée en tête de fil correspond à ce que vous cherchez et s"applique aussi au code EQUIV
Soit un ;0 en fin de formule RECHERCHE ou EQUIV à la place du 1 pour éviter le classement
Mais à priori vous n'aviez pas tout dit puisque vous ne cherchez qu'une partie de la valeur affichée ??
La formule qu'il vous faut en conséquence, en C2 sur votre fichier, dans le champ non classé est:
{=INDEX(B4:B6;(EQUIV("1,43";GAUCHE(C4:C6;4);0);1)}
cette formule est matricielle est doit donc être entrée avec la touche Enter en maintenant ctrl et shift enfoncées.Elle se retrouve entre accolade lorsque cette entrée est effectuée
Crdlmnt
Ps
si vous voulez faire référence à une cellule pour entrer la valeur cherchée, remplacer dans la formule "1,43" par l'adresse de cette cellule et entrer la valeur cherchée en la précédant de l'apostrophe'
ou alors écrivez la formule comme suit pour que la valeur reste numérique:
{=INDEX(B4:B6;(EQUIV(cellule;GAUCHE(C4:C6;4)*1;0);1)}
pour terminer, si vous cherchez à partir de la cellule (D2 par ex) un nombre variable de chiffre en tête de nombre:
{=INDEX(B4:B6;(EQUIV(D2;GAUCHE(C4:C6;NBCAR(D2))*1;0);1)}
Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 239
Modifié par eriiic le 20/09/2011 à 19:26
Modifié par eriiic le 20/09/2011 à 19:26
Bonsoir tout le monde,
vaucluse, j'ai l'impression que tu ramènes 1 et non pas 2 (?)
ma proposition :
=EQUIV(MIN(SI((D3-liste)>0;(D3-liste);9^9));D3-liste;0)
matricielle à valider avec shift+ctrl+entrée
'liste' étant la plage C4:C100 nommée (cellules vides acceptées), et D3 la valeur seuil.
eric
vaucluse, j'ai l'impression que tu ramènes 1 et non pas 2 (?)
ma proposition :
=EQUIV(MIN(SI((D3-liste)>0;(D3-liste);9^9));D3-liste;0)
matricielle à valider avec shift+ctrl+entrée
'liste' étant la plage C4:C100 nommée (cellules vides acceptées), et D3 la valeur seuil.
eric
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 414
20 sept. 2011 à 19:38
20 sept. 2011 à 19:38
Bonsoir Eric
ce n'est pas qu'une impression, mais c'est bien 1 dans le fichier qui est en ligne avec 1,4387824. Savoir ce que l'on cherche exactement?
crdlmnt
ce n'est pas qu'une impression, mais c'est bien 1 dans le fichier qui est en ligne avec 1,4387824. Savoir ce que l'on cherche exactement?
crdlmnt
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 239
Modifié par eriiic le 20/09/2011 à 19:46
Modifié par eriiic le 20/09/2011 à 19:46
Le bon résultat est 2, pas 3
Pour moi c'est la plus grande valeur inférieure au seuil qui est recherchée, l'équivalent d'equiv(...;1).
On verra bien :-)
D'ailleurs si c'est inférieure ou égale il faudra remplacer mon test '>' par '>='
eric
Pour moi c'est la plus grande valeur inférieure au seuil qui est recherchée, l'équivalent d'equiv(...;1).
On verra bien :-)
D'ailleurs si c'est inférieure ou égale il faudra remplacer mon test '>' par '>='
eric
Bonjour,
Je cherche effectivement à ramener 2, soit le premier résultat en dessous de 1,43 qui est un seuil. Pour moins d'ambiguïté, j'aurais peut être du dire que je cherchais 1,425...
J'ai essayé la formule d'eriiic, et il me répond #VALEUR si je la mets dans INDEX, ou erreur sans...
Bref.
Au secours :O
Jodko.
Je cherche effectivement à ramener 2, soit le premier résultat en dessous de 1,43 qui est un seuil. Pour moins d'ambiguïté, j'aurais peut être du dire que je cherchais 1,425...
J'ai essayé la formule d'eriiic, et il me répond #VALEUR si je la mets dans INDEX, ou erreur sans...
Bref.
Au secours :O
Jodko.
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 239
20 sept. 2011 à 21:04
20 sept. 2011 à 21:04
#VALEUR c'est parce que tu as du texte dans ta plage.
ex: http://www.cijoint.fr/cjlink.php?file=cj201109/cij4FXKUSN.xls
eric
ex: http://www.cijoint.fr/cjlink.php?file=cj201109/cij4FXKUSN.xls
eric
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 414
Modifié par Vaucluse le 20/09/2011 à 21:01
Modifié par Vaucluse le 20/09/2011 à 21:01
Re
je ne suis pas sur du résultat, mais essayez celle ci qui n'est pas matricielle, avec la valeur limite en D2:
=INDEX(B4:B6;EQUIV(GRANDE.VALEUR(C4:C6;SOMMEPROD((C4:C6>=D2)*1)+1);C4:C6;0);1)
marche aussi avec des cellules vides, par exemple sur C4:C100
crdlmnt
Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
je ne suis pas sur du résultat, mais essayez celle ci qui n'est pas matricielle, avec la valeur limite en D2:
=INDEX(B4:B6;EQUIV(GRANDE.VALEUR(C4:C6;SOMMEPROD((C4:C6>=D2)*1)+1);C4:C6;0);1)
marche aussi avec des cellules vides, par exemple sur C4:C100
crdlmnt
Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
Ca à l'air de marcher, mais je pense que je ne comprends pas pourquoi...
Je m'explique : Admettons dans mon exemple que D2 soit exactement la valeur 1,41180905620014 (qui est sur la ligne de 2).
Si j'écris : =INDEX(B4:B6;EQUIV(GRANDE.VALEUR(C4:C6;SOMMEPROD((C4:C6>=1,41180905620014)*1)+1);C4:C6;0);1) , la réponse est 2
Si j'écris :
=INDEX(B4:B6;EQUIV(1,41180905620014;C4:C6;0);1) la réponse est #N/A
=INDEX(B4:B6;EQUIV(1,41180905620014;C4:C6;1);1) la réponse est 3
=INDEX(B4:B6;EQUIV(1,41180905620014;C4:C6;0);-1) la réponse est 1
Du coup, ca marche pas ...
Jodko.
Je m'explique : Admettons dans mon exemple que D2 soit exactement la valeur 1,41180905620014 (qui est sur la ligne de 2).
Si j'écris : =INDEX(B4:B6;EQUIV(GRANDE.VALEUR(C4:C6;SOMMEPROD((C4:C6>=1,41180905620014)*1)+1);C4:C6;0);1) , la réponse est 2
Si j'écris :
=INDEX(B4:B6;EQUIV(1,41180905620014;C4:C6;0);1) la réponse est #N/A
=INDEX(B4:B6;EQUIV(1,41180905620014;C4:C6;1);1) la réponse est 3
=INDEX(B4:B6;EQUIV(1,41180905620014;C4:C6;0);-1) la réponse est 1
Du coup, ca marche pas ...
Jodko.
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 239
20 sept. 2011 à 21:27
20 sept. 2011 à 21:27
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 239
21 sept. 2011 à 00:33
21 sept. 2011 à 00:33
Purée t'es un lent toi...
Aucun commentaire sur le fichier exemple ?
Tu vois bien que la formule ne retourne pas d'erreur, contrairement à ce que tu disais...
Alors teste et dis si c'est bon ou pas
eric
Aucun commentaire sur le fichier exemple ?
Tu vois bien que la formule ne retourne pas d'erreur, contrairement à ce que tu disais...
Alors teste et dis si c'est bon ou pas
eric
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 414
Modifié par Vaucluse le 21/09/2011 à 06:58
Modifié par Vaucluse le 21/09/2011 à 06:58
Bonjour
Eric, ton exemple est OK, mais je ne vois pas de commentaires!
Jodko
je n'ai pas écrit le code EQUIV avec 1 ou -1 mais avec 0
explication
le code GRANDE.VALEUR (Champ;rang) recherche la valeur exacte au rang indiqué après le point virgule
le code SOMMEPROD(champ>valeur) compte le nombre de valeurs supérieures ou égales à celle cherchée (on peut aussi utiliser NB.SI)
en y rajoutant 1, on définit le rang de la valeur inférieure la plus proche
Le code GRANDE.VALEUR(Champ;xx) donne donc cette valeur exacte
en conséquence, il faut utiliser dans le code EQUIV ;0) ou;FAUX)
bonne chance
Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
Eric, ton exemple est OK, mais je ne vois pas de commentaires!
Jodko
je n'ai pas écrit le code EQUIV avec 1 ou -1 mais avec 0
explication
le code GRANDE.VALEUR (Champ;rang) recherche la valeur exacte au rang indiqué après le point virgule
le code SOMMEPROD(champ>valeur) compte le nombre de valeurs supérieures ou égales à celle cherchée (on peut aussi utiliser NB.SI)
en y rajoutant 1, on définit le rang de la valeur inférieure la plus proche
Le code GRANDE.VALEUR(Champ;xx) donne donc cette valeur exacte
en conséquence, il faut utiliser dans le code EQUIV ;0) ou;FAUX)
bonne chance
Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 239
21 sept. 2011 à 10:41
21 sept. 2011 à 10:41
Salut vaucluse,
Il y a méprise, mon message était pour jodko :-)
Je lui met un fichier exemple, il ne le voit pas.
Je lui remet un message pour qu'il aille lire le post. Il lit la 1ère phrase et ne regarde même pas le fichier exemple où il peut voir que la formule (bien saisie) ne retourne pas d'erreur.
Bref, ça m'énerve...
A+ :-)
eric
Il y a méprise, mon message était pour jodko :-)
Je lui met un fichier exemple, il ne le voit pas.
Je lui remet un message pour qu'il aille lire le post. Il lit la 1ère phrase et ne regarde même pas le fichier exemple où il peut voir que la formule (bien saisie) ne retourne pas d'erreur.
Bref, ça m'énerve...
A+ :-)
eric
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 414
21 sept. 2011 à 12:00
21 sept. 2011 à 12:00
Cool Eric!!!... bien que là, on ne puisse pas te donner tort, on a le sentiment que le demandeur zappe pas mal d'information depuis le message de Michel concernant le code à placer dans les formules EQUIV ou RECHERCHE.
Bien cordialement
Bien cordialement
A tous, je lis ce que vous me dites, et pas que les premières lignes, alors je vais m'amuser à citer pour qu'il y ait plein de choses à lire :
"#VALEUR c'est parce que tu as du texte dans ta plage. "
Je n'ai PAS de texte dans la plage dans mon tableur sur mon PC, j'en suis sur et certain.
J'ai ouvert ton tabbleau qui ne renvoie pas d'erreur, mais qui ne m'explique pourquoi j'ai une erreur moi, parce qu'Excel ne me parle pas, tout simplement.
Je suis idiot, mais on est comme on est. Je comprends pas tout ce que vous me dites.
Ma question est pourtant simple :
Comment faire rechercheV sur une colonne non triée. Exactement rechercheV, simplement.
Merci.
Jodko.
"#VALEUR c'est parce que tu as du texte dans ta plage. "
Je n'ai PAS de texte dans la plage dans mon tableur sur mon PC, j'en suis sur et certain.
J'ai ouvert ton tabbleau qui ne renvoie pas d'erreur, mais qui ne m'explique pourquoi j'ai une erreur moi, parce qu'Excel ne me parle pas, tout simplement.
Je suis idiot, mais on est comme on est. Je comprends pas tout ce que vous me dites.
Ma question est pourtant simple :
Comment faire rechercheV sur une colonne non triée. Exactement rechercheV, simplement.
Merci.
Jodko.
Vaucluse
Messages postés
26496
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
1 avril 2022
6 414
Modifié par Vaucluse le 21/09/2011 à 12:44
Modifié par Vaucluse le 21/09/2011 à 12:44
Ne nous fâchons pas
Vous n'êtes certainement pas idiot , ce n'est pas ce que nous avons dit...
...mais idiot ou pas, il n'est pas possible de faire un RECHERCHEV quand la colonne de recherche est, comme sur votre modèle, à droite de la colonne à éditer.et que de surcroît, votre cas n'est pas adaptable en l'état avec une colonne non triée, sauf à appliquer les conseils que l'on vous donne depuis le début
Ce que nous disons simplement, c'est que vous n'utilisez pas pleinement les informations que l'on vous transmet.
relisez tout, appliquez le correctement et parlez nous après seulement des résultats qui ne fonctionnent pas.
sans rancune et bien cordialement.
Vous n'êtes certainement pas idiot , ce n'est pas ce que nous avons dit...
...mais idiot ou pas, il n'est pas possible de faire un RECHERCHEV quand la colonne de recherche est, comme sur votre modèle, à droite de la colonne à éditer.et que de surcroît, votre cas n'est pas adaptable en l'état avec une colonne non triée, sauf à appliquer les conseils que l'on vous donne depuis le début
Ce que nous disons simplement, c'est que vous n'utilisez pas pleinement les informations que l'on vous transmet.
relisez tout, appliquez le correctement et parlez nous après seulement des résultats qui ne fonctionnent pas.
sans rancune et bien cordialement.
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 239
21 sept. 2011 à 12:44
21 sept. 2011 à 12:44
"#VALEUR c'est parce que tu as du texte dans ta plage. "
Je n'ai PAS de texte dans la plage dans mon tableur sur mon PC, j'en suis sur et certain.
Si, #VALEUR c'est quand la fonction veut un type de donnée et qu'on lui fourni un autre type.
Comment faire rechercheV sur une colonne non triée. Exactement rechercheV, simplement.
Michel t'a répondu ici à cette question en te donnant les limites : Le zéro en dernier paramètre recherche la 1° valeur exacte.
Ce n'est pas adapté à ce que tu veux.
Plutôt que de tourner un rond pendant des jours dépose un fichier exemple sur cijoint.fr et colle ici le lien fourni.
eric
Je n'ai PAS de texte dans la plage dans mon tableur sur mon PC, j'en suis sur et certain.
Si, #VALEUR c'est quand la fonction veut un type de donnée et qu'on lui fourni un autre type.
Comment faire rechercheV sur une colonne non triée. Exactement rechercheV, simplement.
Michel t'a répondu ici à cette question en te donnant les limites : Le zéro en dernier paramètre recherche la 1° valeur exacte.
Ce n'est pas adapté à ce que tu veux.
Plutôt que de tourner un rond pendant des jours dépose un fichier exemple sur cijoint.fr et colle ici le lien fourni.
eric
20 sept. 2011 à 18:38
Jodko.