Formule en fonction d'une quantité

Résolu

Bonjour,

Je recherche une formule que je vais mettre en F8 avec prise en compte d'une valeur en C8 pour la comparer dans un tableau de 2 colonne en B19 et D19 dont les valeur seront avec une fourchette de calcule.

Colonne1 / Colonne2

118 / 50
119 / 75
120 / 100
121 / 125
122 / 150
123 / 170

Donc si en D8 la valeur et 120 alors le resultat en F8 doit etre 100, si 123 alors se sera 170

------------------------------------------------------------------------------

Autre cas plus difficile :

Autre exemple d'un autre tableau avec la formule en G8 avec la valeur qui sera en D8

Colonne1 / Colonne 2

1599 / 0
1799 / 10
1899 / 15
1999 / 20
2099 / 25
> 2100 / 30

Dans cette exemple si en D8 j'ai 1650 donc supérieur a 1599 on prend la ligne 1799 ou on fait la différence avec 1599 soit 200 que l'on multiplie par 10

Si maintenant la valeur de D8 est de 2050 alors on doit faire le calcule de la difference de se qui depasse mais pour chaque cas de figure

1599 à 1799 = 2000 (écart 200*10)
1800 à 1899 = 1500 (écart 100*15)
1900 à 1999 = 2000 (écart 100*20)
2000 à 2099 = 2500 (écart 100*25)
>2000  = 1500 (écart 50*30)

Soit un résultat en G8 de 9500 (2000+1500+2000+2500+1500)

En gros c'est un calcule en fonction d'une fourchette

< 1599 / 0
de 1599 à 1799 / 10
de 1800 à 1899 / 15
de 1900 à 1999 / 20
de 2000 à 2099 / 25
> 2100 / 30

J'ai essayé d’être le plus clair possible dans mes explication, j’espère que cela ira.
Windows / Edge 109.0.1518.140


L'esprit c'est comme un parachute, qui est utile seulement quand il est ouvert.

8 réponses

Résumé de la discussion

Le sujet porte sur une formule à placer en F8 qui, en prenant en compte une valeur en C8, transforme une valeur de D8 à partir d’un tableau à deux colonnes (Colonne1 / Colonne2), avec des exemples tels que 120 → 100 et 123 → 170. Pour le premier cas, les réponses proposent une recherche verticale (RECHERCHEV) ou INDEX/MATCH sur la plage correspondante afin d’obtenir la valeur associée dans la seconde colonne, avec gestion des valeurs hors plage. Le cas plus complexe décrit une logique par tranches (1599/0, 1799/10, 1899/15, etc.) où l’écart par rapport à chaque seuil est multiplié par un facteur et cumulée, conduisant à des résultats comme 9500 pour 2050, ce qui illustre la nécessité d’une approche spécifique via une table dédiée ou une formule avancée. Certains échanges préconisent de centraliser les calculs sur une seule feuille et de partager un classeur exemple pour clarifier la mise en œuvre.

Bobot (l’IA à votre service)
  1. Bonjour,

    Vous dites: une formule que je vais mettre en F8 avec prise en compte d'une valeur en C8

    et ensuite, vous dites: Donc si en D8 la valeur et 120... 

    Qu'est ce qui est juste ,le critère en C8  ou D8 ..?


    1
    1. Contributeur

      Bonjour.

      "J'ai essayé d’être le plus clair possible dans mes explication, j’espère que cela ira"

      Comme tu devrais le savoir, depuis 14 ans que tu utilises CCM (même si tu poses rarement des questions sur Excel), on n'est jamais aussi clair que lorsqu'on joint son fichier Excel !

       1) Aller dans https://www.cjoint.com/
       2) Cliquer sur [Parcourir] pour sélectionner le fichier (15 Mo maxi)
       3) Défiler vers le bas pour cliquer sur le bouton bleu [Créer le lien Cjoint]
       4) Au bout de quelques secondes la deuxième page s'affiche, avec le lien en gras ; faire un clic-droit dessus et choisir "Copier le lien"
       5) Revenir dans la discussion sur CCM, et dans votre message faire "Coller".
      =>Voir la fiche https://www.commentcamarche.net/faq/29493-utiliser-cjoint-pour-heberger-des-fichiers

      Il existe aussi https://www.transfernow.net/


      1
      1. bonjour

        Une proposition

        en F8

        =RECHERCHEV(D8;A2:B7;2;0) 

        en F28

        =SI(ESTERREUR(RECHERCHEV(D28;A22:B27;2;0));INDEX(A22:B27;2;EQUIV(D28;A22:A27;1));RECHERCHEV(D28;A22:B27;2;0)) 
        1
        1. re bonjour

          une petite erreur dans ma réponse précdente

          en F8

          =RECHERCHEV(D8;A2:B7;2;0) 

          en F28

          =SI(ESTERREUR(RECHERCHEV(D28;A22:B27;2;0));INDEX(A22:B27;EQUIV(D28;A22:A27;1)+1;2);RECHERCHEV(D28;A22:B27;2;0)) 
          1
      2. Salut, 

        Demain je test sur mon fichier et je reviens vers toi.

        Merci 


        0
        1. Bonjour,

          Super de ne pas répondre à ma question, il semble que le parachute est défectueux!.


          1
          1. Bonjour,

            J'avais répondu le 23 novembre à 20h15 avant ton message de 22h02. Et j'ai pas pu testé avant aujourd'hui car trop de boulot, donc le parachute fonctionne très bien.

            Salut, 
            
            Demain je test sur mon fichier et je reviens vers toi.
            
            Merci 

            Alors pour la première formule ça marche impeccable, j'ai réussi a l'adapter a mon tableau. Pour la deuxième, par contre ça ne marche pas :

            Sachant que le tableau est en J19:K24 et que la valeur et en D8, je n'ai pas réussi a l'adapter.

            =SI(ESTERREUR(RECHERCHEV(D8;J19:K24;2;0));INDEX(J19:K24;2;EQUIV(D8;J19:K24;1));RECHERCHEV(D8;J19:K24;2;0))

            Merci pour ton aide

            0
        2. bonsoir

          un classeur exemple,  comme explicité par Raymond, serait le bienvenu 

          1
          1. @vcloclo1

            bonsoir

            il faudrait

            =SI(ESTERREUR(RECHERCHEV(D8;J19:K24;2;0));INDEX(J19:K24;EQUIV(D8;J19:J24;1)+1;2);RECHERCHEV(D8;J19:K24;2;0))

            l'erreur était là

            EQUIV(D8;J19:K24;1); il faut EQUIV(D8;J19:J24;1)

            et ajouter 1 pour avoir la valeur du dessous

            il faut

            0
          2. @yclik

            Salut,

            La formule marche cette fois ci, mais il y a une erreur dans le calcul voulu. 

            Dans l'exemple du fichier, il y a 1800 kg donc 

            1600 à 1799 = 1990€ (kg en suppl. 199*10€)
            1800  = 15€ (kg en suppl. 1*15€)

            Soit un total de 2005€

            En faite pour chaque cas, c'est le nombre de kg qui dépasse la valeur multiplier par la valeur en face

            Sur le tableau tout se qui dépasse de 1600 à 1799 se sera 10€ le kg supplémentaire, puis viendra s'ajouté les autres dépassement de 1800 à 1899 qui eux seront de 15€ par kilo en supplémentaire etc...

            Comme dans mon 1° exemple pour un poids de 2050 kg

            1600 à 1799 = 1990 (écart 199*10)
            1800 à 1899 = 1485 (écart 99*15)
            1900 à 1999 = 1980 (écart 99*20)
            2000 à 2099 = 2475 (écart 99*25)
            +2000  = 1500 (écart 50*30)

            Soit un résultat en qui sera affiché en G8 de 9430 (1990+1485+1980+2475+1500)

            Merci pour ton aide

            0
          3. @vcloclo1

            Bonjour,

            Qu'elle est la formule que vous utilisez pour le calcul?

            0
        3. Bonjour,

          Oui les formules sont valables sur une autre feuille si elles y sont aussi et bien sur il faut adapté selon la structure de vos plages de données  (Colonnes et lignes différentes)...! 

          Pour être plus juste, mettre un exemple de ce que vous désirez réaliser sur  https://www.cjoint.com/ et poster le lien.


          1
          1. Bonjour,

            En faite ma question était plutôt que la formule et le résultat soit sur la feuille 1 et que le tableau sur la feuille 2 histoire de ne pas tout voir sur la première feuille.

            Merci

            0
          2. Contributeur
            @vcloclo1

            Bonsoir.

            C'est pourtant une source de complications et d'erreurs potentielles, que d'avoir plusieurs feuilles, alors qu'une seule suffit ...

            Tu peux d'ailleurs masquer des lignes et des cellules qui ne servent qu'à faire des calculs, et tu peux aussi ne pas les sélectionner dans la zone d'impression.

            Je te conseille donc de tout mettre dans une seule feuille.

            1