Moyenne de deux colonnes multipliées 2 à 2

Fermé
LeBoums Messages postés 7 Statut Membre -  
krazykat Messages postés 11705 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
Je souhaite effectuer la moyenne de de deux colonnes qui sont multipliées deux à deux (fonction SOMMEPROD il me semble).
Ce sont des temps d'opérations (colonne 1) que je dois multiplier par un nombre d'opérateur (colonne 2) et je souhaite avoir la moyenne de temps de la totalité. Le souci c'est que je souhaite aussi que excel ne prenne pas en compte les cases vides dans la moyenne

Exemple :
Opé 1 : B2 : temps 20 C2 : nombre d'opé 2
Opé 2 : B3 : temps 30 C3 : nombre d'opé 4
Opé 3 : B4 : temps (vide) C4 : nombre d'opé (vide)
Opé 4 : B5 : temps 20 C5 : nombre d'opé 1

Je voudrai obtenir le resultat suivant : (B2*C2 + B3*C3 + B4*C4 + B5*C5)/3
Divisé par 3 et non par 4 car il n'y à rien dans les cases B4 et C4.

Puisque je cherche à créer un outil, cette page excel devra fonctionner quel que soit le nombre d'opération.

J'éspère que j'ai été clair.
Merci d'avance pour votre aide.

7 réponses

  1. Raymond PENTIER Messages postés 58211 Date d'inscription   Statut Contributeur Dernière intervention   17 480
     
    =SOMMEPROD(B2:B999;C2:C999)/NB(C2:C999)
    tout simplement ...
    0
  2. ccm81 Messages postés 11033 Statut Membre 2 434
     
    bonjour

    pour faire simple
    =SOMMEPROD(A2:A10;B2:B10)/NB(B2:B10)

    RQ1. es tu sur qu'il faut diviser par le nb d'Opé et nom par le total de nb d'Opé
    RQ2. tu peux remplacer la ligne 10 par ce que tu veux. On peut faire plus joli, en définissant de façon "dynamique" les plages de données (voir la fonction DECALER)

    bonne suite
    0
  3. Raymond PENTIER Messages postés 58211 Date d'inscription   Statut Contributeur Dernière intervention   17 480
     
    Salut LeBoums.

    La remarque de ccm81 mérite qu'on s'y arrête :

    La moyenne que tu définis représente le volume moyen d'heures passées (et comptabilisées) pour une opération (qui peut nécessiter un ou plusieurs opérateurs).
    La moyenne telle que la propose ccm81 donnerait le volume moyen d'heures par opération et par opérateur. Et la formule serait alors
    =SOMMEPROD(B2:B999;C2:C999)/SOMME(C2:C999)
    au lieu de
    =SOMMEPROD(B2:B999;C2:C999)/NB(C2:C999).
    0
  4. LeBoums Messages postés 7 Statut Membre
     
    Merci pour vos reponses, je ne connaissais pas la fonction NB, c'est vraiment sympa.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. LeBoums Messages postés 7 Statut Membre
     
    Encore une chose, pour la somme des divisions deux à deux, quel est la fonction ??

    (B2/C2 + B3/C3 + B4/C4 + B5/C5) sans tenir compte des cases vides bien sur.

    Merci
    0
  7. ccm81 Messages postés 11033 Statut Membre 2 434
     
    1. je ne vois que quelque chose comme ça (ce qui ne veut pas dire que ...)
    =SOMMEPROD(A2:A5;1/(B2:B5))
    mais ça donne une erreur lorsqu'un des diviseurs vaut 0 (est absent)
    il y a bien un moyen en mettant ces diviseurs absents à 1 ce qui ne changera pas le résultat, à condition que les numérateurs soient absents aussi
    ce qui fait beaucoup de si ....

    2. avec macro

    Public Function spi(plage1, plage2) As Double
    Dim nbli As Long, li As Long
    Dim s As Double
    s = 0
    nbli = plage1.Rows.Count
    For li = 1 To nbli
      If plage2.Cells(li, 1) <> 0 Then
        s = s + plage1.Cells(li, 1) / plage2.Cells(li, 1)
      End If
    Next li
    spi = s
    End Function

    qui s'utilise comme une fonction ordinaire
    ex =SPI(A2:A5;B2:B5) donne le bon résultat dans toutes les situations
    Alt-F11 puis insertion module et copier coller le code

    bonne suite
    0