Formule Equiv sur Excel

Résolu/Fermé
Cocotrouille - Modifié par Cocotrouille le 5/03/2015 à 14:52
 Cocotrouille - 5 mars 2015 à 17:35
Bonjour,

Je voudrais vos conseils, je dois programmer un tableau pour automatiser un calcul. J'ai besoin d'utiliser la formule Equiv sur excel. Il me faut la valeur "supérieur à" j'ai donc réalisé ceci (j'ai isolé la formule):
Valeurs: (A1:A5)
2000
2500
3000
3500
4000

avec une cellule (B4) qui contient 2300
j'effectue la formule =EQUIV(B4;A1:A5;-1) et j'obtient le résultat #N/A alors que je voudrais avoir 2 soit la position de A2 dans le tableau A1:A5

Comment régler le problème?
Merci d'avance

2 réponses

pio923 Messages postés 36 Date d'inscription dimanche 8 mars 2009 Statut Membre Dernière intervention 12 décembre 2015 82
5 mars 2015 à 15:39
Bonjour,

Le paramètre -1 dans une fonction EQUIV ne fonctionne que sur des données triées en ordre décroissant. Dans votre cas il faudrait donc que vos valeurs dans la colonne A soient décroissantes:
4000
3500
3000
2500
2000

Dans ce cas votre formule fonctionnera sans problème.
1
Merci! Avez vous une solution a mon problème? En utilisant d'autre fonction?

j'avais penser a contourner le problème avec :
equiv(B4;A1:A5;1)+1 mais si B4 prend alors une valeur exact cela fausse le résultat, comment faire?
0
pio923 Messages postés 36 Date d'inscription dimanche 8 mars 2009 Statut Membre Dernière intervention 12 décembre 2015 82 > Cocotrouille
5 mars 2015 à 16:00
Je ne vois pas de solution "propre" autrement mais vous pouvez toujours mettre ça:

equiv(B4-1;A1:A5;1)+1

Cela marchera si la valeur recherché n'est pas un nombre à virgule.
0
pio923 Messages postés 36 Date d'inscription dimanche 8 mars 2009 Statut Membre Dernière intervention 12 décembre 2015 82 > Cocotrouille
5 mars 2015 à 16:11
Vous pouvez aussi essayer ça:

=MIN(SI(A1:A5>=B4;A1:A5))

mais attention il faut dans ce cas valider la formule par Ctrl+Maj+Entrée puisqu'il s'agit alors d'une formule matricielle.
0
Cocotrouille
5 mars 2015 à 16:13
dans mon cas, la valeur sera toujours un nombre entier (mesure en mm pour des bâtiments) la solution me convient merci de votre aide!!
0
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 5/03/2015 à 16:13
Bonjour
la formule est
=EQUIV(B4;A1:A5;1)
dans l'aide (taper toucheF1)
1 ou omis La fonction EQUIV recherche la valeur la plus élevée qui est inférieure ou égale à celle de l'argument valeur_cherchée. Les valeurs de l'argument matrice_recherche doivent être placées en ordre croissant, par exemple : ...-2, -1, 0, 1, 2, ..., A-Z, FAUX, VRAI. 
0 La fonction EQUIV recherche la première valeur exactement équivalente à celle de l'argument valeur_cherchée. Les valeurs de l'argument matrice_recherche peuvent être placées dans un ordre quelconque.
-1 La fonction EQUIV recherche la plus petite valeur qui est supérieure ou égale à celle de l'argument valeur_cherchée. Les valeurs de l'argument matrice_recherche doivent être placées en ordre décroissant, par exemple : VRAI, FAUX, Z-A, ..., 2, 1, 0, -1, -2, ..., et ainsi de suite.


Donc 2300 renverra 1
2500 renverra 2

mais pourquoi veux tu absolument 2 pour 2300 ?
;
Michel
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
5 mars 2015 à 16:17
Excusez moi d'avoir voulu vous aider.... adieu, donc.
0
Cocotrouille
5 mars 2015 à 17:35
excusez moi je n'avais pas vu votre réponse, 2300 doit me renvoyé 2 car c'est la 2 ème ligne du tableau sélectionné (soit A1:A5). J'ai absolument besoin que 2300 me donne 2 pour une tableau beaucoup plus compliqué (vous vous en doutez) dans le cas présenté j'ai isolé la situation.

La solution consiste a créer un 0 en A1 nous avons donc le tableau A1:A6
La formuler qui convient est =EQUIV(B4-1;A1;A6;1)+1
0