Formule Equiv sur Excel

Résolu
Cocotrouille -  
 Cocotrouille -
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

  1. pio923 Messages postés 40 Statut Membre 91
     
    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
    1. Cocotrouille
       
      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
      1. pio923 Messages postés 40 Statut Membre 91 > Cocotrouille
         
        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
      2. pio923 Messages postés 40 Statut Membre 91 > Cocotrouille
         
        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
    2. Cocotrouille
       
      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
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    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
    1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
       
      Excusez moi d'avoir voulu vous aider.... adieu, donc.
      0
    2. Cocotrouille
       
      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