Attribution selon différence entre deux chiffres

Résolu
Bonjour,

Voici mon problème;

Mes valeurs de bases (deux valeurs dans tous les cas) varient entre 0.25 et 12 et change uniquement par palier de 0.25.

La différence entre ces deux valeures et LA BASE du calcul.

ex; Valeur 1 = 3.25
Valeur 2 = 6.25

A partir de là, sachant que pour chaque palier de 0.25

entre 0 et 5, le point et de 3
entre 5 et 6, le point et de 2.5
entre 6 et l'infini le point et de 2

But, trouver le total de point selon la différence entre les deux valeurs.

Comment convertir ceci dans une formule tenant encore compte que la valeur 1 peut être plus élevée que la valeur 2.

J'ai bien essayé avec des formules en SI mais j'y perds mon latin (bien que je n'ai jamais apris le latin).

Merci au esprit éclairé...

7 réponses

  1. Contributeur
    Bonjour

    essaies
    =SI(ABS(A1-A2)<5;3;SI(ABS(A1-A2)<6;2,5;2))
    0
    1. Malheureusement cette formule ne fonctionne pas.

      Voici ce que ça donnerai si je le ferai en manuel

      Valeur 1 ; 3.25
      Valeur 2 ; 6.25

      de 3.25 à 5 = 1.75 1.75 / 0.25 = 7 7 x 3 = 21
      de 5 à 6 = 1 1 / 0.25 = 4 4 x 2.5 = 10
      de 6 à 6.25 = 0.25 0.25 / 0.25 = 1 1 x 2 = 2

      TOTAL 33

      Et il y a encore une complication dans le fait que la valeur 1 peut être plus élevée que la valeur 2.

      Good luck...
      0
      1. Contributeur
        bonjour,

        Avec tes données en A1 et B1, cela pourrait donner ceci :

        =(MIN(5;B1)-MIN(5;A1))/0.25*3+(MIN(6;B1)-MAX(5;A1))/0.25*2.5+(MAX(6;B1)-MAX(6;A1))/0.25*2
        0
        1. Merci,

          Avec quelques rajouts voici la formule qui fonctionne.

          =SI(A1<B1;((MIN(5;B1)-MIN(5;A1))/0.25*3)+((MIN(6;B1)-MAX(5;A1))/0.25*2.5)+((MAX(6;B1)-MAX(6;A1))/0.25*2);SI(B1<A1;((MIN(5;A1)-MIN(5;B1))/0.25*3)+((MIN(6;A1)-MAX(5;B1))/0.25*2.5)+((MAX(6;A1)-MAX(6;B1))/0.25*2);))

          Bonne journée à tous
          0
          1. bonjour à tous

            @Warp
            es tu sûr que ta formule fonctionne dans tous les cas?
            chez moi, il y a un problème
            pour 2 et 2.25 elle donne -24.5 au lieu des 3 attendus
            pour 6.25 et 7 elle donne 3.5 au lieu des 6 attendus
            ....
            mais je me suis peut être trompé

            de mon côté, j'ai tenté une macro (peut être plus lisible que la formule excel)

            Public Function valeur(v1 As Single, v2 As Single) As Single 
            Dim mini As Single, maxi As Single 
            If v1 = v2 Then valeur = 0: Exit Function 
            If v1 < v2 Then 
              mini = v1: maxi = v2 
            Else 
              mini = v2: maxi = v1 
            End If 
            Select Case maxi 
              Case 0 To 5:  valeur = (maxi - mini) * 3 / 0.25 
              Case 5 To 6 
                Select Case mini 
                  Case 0 To 5: valeur = (5 - mini) * 3 / 0.25 + (maxi - 5) * 2.5 / 0.25 
                  Case 5 To 6: valeur = (maxi - mini) * 2.5 / 0.25 
                End Select 
              Case Is > 6 
                Select Case mini 
                  Case 0 To 5: valeur = (maxi - 6) * 2 / 0.25 + 1 * 2.5 / 0.25 + (5 - mini) * 3 / 0.25 
                  Case 5 To 6: valeur = (maxi - 6) * 2 / 0.25 + (6 - mini) * 2.5 / 0.25 
                  Case Is > 6: valeur = (maxi - mini) * 2 / 0.25 
                End Select 
            End Select 
            End Function


            bonne suite
            0
            1. Effectivement dès que les deux valeurs sont en dessous de 5 ou en dessus de 6 il y a un problème.

              La macro c'est bien, le problème c'est qu'au final ce calcul doit s'intégrer dans un autre.

              S'il y a un amateur pour trouver la soluce.

              J'y travail avec peine...
              0
              1. la fonction "macro" s'utilise comme une fonction excel (voir doc joint)
                RQ. j'ai gardé tes opérations pour que tu puisses t'y retrouver, mais on peut simplifier
                https://www.cjoint.com/?3LtlKkPjTvL

                bonne suite
                0