Problème somme avec conditions

Ascali

XLDnaute Nouveau
Bonjour,

Je n'ai pas trouvé de réponse pour mon problème, j'ai joint un petit fichier d'essai.
Le problème est expliqué dans les commentaires des cellules.

Merci d'avance
Ascali
 

Pièces jointes

  • Essai1.xlsx
    12.1 KB · Affichages: 59
  • Essai1.xlsx
    12.1 KB · Affichages: 59
  • Essai1.xlsx
    12.1 KB · Affichages: 60

bika

XLDnaute Nouveau
Re : Problème somme avec conditions

Bonjour

Le premier cas est relativement simple:
Code:
=SOMMEPROD((MOD(LIGNE(C4:C19);2)=0)*C4:C19)
1/ regarde le numéro de la ligne
2/ regarde son reste dans une division par 2 (par exemple ligne 7, divise 7 par 2 = 3 x 2 + 1 donc le reste est égal à 1)
3/ additionne tous les cas ou le reste est égal à 0.

Pour adapter à un cas une ligne sur trois (c4,c7,...) il faudra utiliser MOD(LIGNE(C4:C19);3)=1)

Pour ta deuxième question, je ne vois comment faire sans paramétrer de fonction personnelle (donc macro...) est-ce envisageable?
 

eriiic

XLDnaute Barbatruc
Re : Problème somme avec conditions

Bonjour à tous,

2)
Ta MFC c'est ">0", en fait tu veux la somme des lignes impaires (autant demander ça directement...).
Et comme tu n'as pas de nombres négatifs :
=SOMMEPROD((MOD(LIGNE(C4:C19);2)=1)*(C4:F19))
suffira.

eric
 

jpb388

XLDnaute Accro
Re : Problème somme avec conditions

Bonjour a tous

ma contribution par fonction personnalisée

pour les installer

copier le code
ouvrir le classeur
alt+F11 pour VBA
insertion / Module
coller
ferme.
clique sur la cellule prévu
insérer fonction/ personnalisée / et choisir l'une des deux

somme_Couleur
Plage ==> sélection à la souris de la zone à traiter
Couleur ==> sélectionnée une case avec la couleur MFC
OK

Somme_Ecart
Plage ==> sélection à la souris de la zone à traiter
Écart ==> taper un chiffre
OK
en quittant excel l'enregistré avec l'extention .xlsm
Code:
Function Somme_Couleur(Plage As Range, Etalon As Range)
    Dim Couleur%, Cellule As Range
    Couleur = Etalon.FormatConditions(1).Interior.ColorIndex
    Somme_Couleur = 0
    For Each Cellule In Plage
        If Cellule.FormatConditions.Count > 0 Then
            If (Cellule.FormatConditions(1).Interior.ColorIndex = Couleur) And IsNumeric(Cellule.Value) Then Somme_Couleur = Somme_Couleur + Cellule.Value
        End If
    Next Cellule
End Function
Function Somme_Ecart(Plage As Range, Ecart%)
    Dim Cellule As Range, Compteur#
        Compteur = Ecart
    For Each Cellule In Plage
        If Compteur = Ecart Then
            Somme_Ecart = Somme_Ecart + Cellule.Value
            Compteur = 0
        End If
        Compteur = Compteur + 1
    Next Cellule
End Function
 

Discussions similaires

Réponses
35
Affichages
2 K
  • Résolu(e)
Microsoft 365 =somme.si
Réponses
4
Affichages
86

Statistiques des forums

Discussions
312 230
Messages
2 086 428
Membres
103 207
dernier inscrit
Michel67