OVH Cloud OVH Cloud

Recherche dans un tableau

6 réponses
Avatar
Gypass - Contact
Bonjour,

Je fais une recherche dans un tableau dans la plage suivante:
0 - 2250 - 2400 - 2500 - 2750 - 3000 - 3250 - 3500 - 3750 - 4000 - 4250 -
4500
ou
0 - 1851 - 2001 - 2136 - 2151 - 2251 - 2351

Je ne peux utiliser que les formules d'excel et pas de code VB.

Quand j'effectue une recherche avec la fonction Recherche()
Si ma valeur recherchée se trouve entre 2 valeurs, la fonction prends la
valeur inférieure à ma valeur cherchée.

Je n'arrive pas à faire l'inverse, c'est à dire, récupérer la valeur
supérieure à ma valeur cherchée.

Merci par avance.

Thomas.

6 réponses

Avatar
anonymousA
bonjour,

Par construction, à ma conniassance pour les fonctiosn recherche et ses
frères (recherchev, rechercheh), la valeur renvoyée au cas où il n'y a pas de
correspondance exacte est la valeur immédiatement inférieure et ce paramètre
ne peut être modifié. Pour recherchev et rechercheh, on peut evidemment
rechercher l'équivalence exacte mais il ne semble pas que c'est ce que tu
recherches si j'ai bien compris.
Je te propose donc la formule suivante qui est un artifice pour trouver la
valeur immédiatement supérieure plutot que la value inférieure. Si Excel
trouve qu'il y a une valeur de correspondance exacte, il l'affiche.

on suppose que les données chiffrées ( de 0 à 4500) sont dans les cellules
de A1 à A12 et que la valeur que l'on rentre à la main est en cellule E1.la
cellule suivante est à rentrer en B1 p.e.

Attention avec les conditions de la formule, si tu tapes un nombre supérieur
à 4500, la formule renvoie la valeur de la cellule immédiatement supérieure à
celle contenant 4500 et donc 0 si celle-ci est vide (cellule A13 dans les
conditions de l'exercice) , et si tu tapes un nombre <0, celà posera
problème. La formule suivante est certainement améliorable et sur ce site, il
y a des Pro de la formule Excel qui ne manqueront pas de t'apporter des
élements complémentaires.

=SI(ESTERREUR(RECHERCHEV(E1;A1:A12;1;FAUX));INDIRECT(ADRESSE(EQUIV(E1;A1:A12)+1;1));RECHERCHEV(E1;A1:A12;1;FAUX))

A+



Bonjour,

Je fais une recherche dans un tableau dans la plage suivante:
0 - 2250 - 2400 - 2500 - 2750 - 3000 - 3250 - 3500 - 3750 - 4000 - 4250 -
4500
ou
0 - 1851 - 2001 - 2136 - 2151 - 2251 - 2351

Je ne peux utiliser que les formules d'excel et pas de code VB.

Quand j'effectue une recherche avec la fonction Recherche()
Si ma valeur recherchée se trouve entre 2 valeurs, la fonction prends la
valeur inférieure à ma valeur cherchée.

Je n'arrive pas à faire l'inverse, c'est à dire, récupérer la valeur
supérieure à ma valeur cherchée.

Merci par avance.

Thomas.





Avatar
AV
Je n'arrive pas à faire l'inverse, c'est à dire, récupérer la valeur
supérieure à ma valeur cherchée.


Pour trouver la valeur supérieure (ou égale) à la valeur cherchée :
Matricielle (validation par ctrl+maj+entrée) :

=MIN(SI(plage>=valeurCherchée;plage))

AV

Avatar
anonymousA
très joli, en effet.


Je n'arrive pas à faire l'inverse, c'est à dire, récupérer la valeur
supérieure à ma valeur cherchée.


Pour trouver la valeur supérieure (ou égale) à la valeur cherchée :
Matricielle (validation par ctrl+maj+entrée) :

=MIN(SI(plage>=valeurCherchée;plage))

AV







Avatar
Gypass - Contact
Bonjour,

Merci pour les réponses.

La formule fonctionne et me renvoi la valeur de la cellule,
je recherche à récupérer la référence de la ligne ou de la colonne ramené
par la formule?
Ligne:
=MIN(SI(B32:P32>±;B32:P32))
Colonne:
=MIN(SI(A33:A45>²;A33:A45))

Merci par avance.

Thomas.

"AV" a écrit dans le message de
news:uhF%
Je n'arrive pas à faire l'inverse, c'est à dire, récupérer la valeur
supérieure à ma valeur cherchée.


Pour trouver la valeur supérieure (ou égale) à la valeur cherchée :
Matricielle (validation par ctrl+maj+entrée) :

=MIN(SI(plage>=valeurCherchée;plage))

AV






Avatar
AV
je recherche à récupérer la référence de la ligne ou de la colonne ramené
par la formule?
Ligne:
=MIN(SI(B32:P32>±;B32:P32))
Colonne:
=MIN(SI(A33:A45>²;A33:A45))


Question à tiroirs ?

Pour ce qui est de la ligne, ce sera surement 32 !
Si tu veux que la formule puisse se mettre à jour s'il y a déplacement de la
plage examinée (donc pas de constante)
Matricielle :
=MIN(SI(B32:P32>±;LIGNE(B32)))

Pour la colonne :
Matricielle :
=EQUIV(MIN(SI(B32:P32>±;B32:P32));B32:P32)

AV

Avatar
Gypass
Merci pour la réponse.

"AV" a écrit dans le message de
news:%
je recherche à récupérer la référence de la ligne ou de la colonne
ramené


par la formule?
Ligne:
=MIN(SI(B32:P32>±;B32:P32))
Colonne:
=MIN(SI(A33:A45>²;A33:A45))


Question à tiroirs ?

Pour ce qui est de la ligne, ce sera surement 32 !
Si tu veux que la formule puisse se mettre à jour s'il y a déplacement de
la

plage examinée (donc pas de constante)
Matricielle :
=MIN(SI(B32:P32>±;LIGNE(B32)))

Pour la colonne :
Matricielle :
=EQUIV(MIN(SI(B32:P32>±;B32:P32));B32:P32)

AV