XL 2016 Si la colonne contient ce mot, ou ce mot, ou encore ce mot, alors faire la somme

zarkoffe

XLDnaute Nouveau
Bonjour,

J'ai besoin d'une commande sous excel réalisant ceci :

D'abord, j'ai deux colonnes : l'une contenant des intitulés (du texte), et en face un montant spécifique.
J'aimerai écrire la commande "Si, dans l'ensemble des intitulés de la colonne B, certains contiennent le mot X, ou le groupe de mot Y, ou encore le mot Z, alors ajouter leur montant de la colonne C à la condition, également, que le surlignage de la colonne C soit différent d'une certaine couleur que je filtre notamment grâce à cette fonction VBA :
VB:
Option Explicit

Function SUMCOLOR(sumRange As Range) As Double

    Dim cell As Range
    For Each cell In sumRange
        If cell.Interior.Color = 16777215 Then
            SUMCOLOR = SUMCOLOR + cell.Value
        End If
    Next cell
End Function

merci !
 

Etoto

XLDnaute Barbatruc
Bonjour,

J'ai besoin d'une commande sous excel réalisant ceci :

D'abord, j'ai deux colonnes : l'une contenant des intitulés (du texte), et en face un montant spécifique.
J'aimerai écrire la commande "Si, dans l'ensemble des intitulés de la colonne B, certains contiennent le mot X, ou le groupe de mot Y, ou encore le mot Z, alors ajouter leur montant de la colonne C à la condition, également, que le surlignage de la colonne C soit différent d'une certaine couleur que je filtre notamment grâce à cette fonction VBA :
VB:
Option Explicit

Function SUMCOLOR(sumRange As Range) As Double

    Dim cell As Range
    For Each cell In sumRange
        If cell.Interior.Color = 16777215 Then
            SUMCOLOR = SUMCOLOR + cell.Value
        End If
    Next cell
End Function

merci !
Bonjour,

Un SOMME.SI.ENS fait le travail pour le calcul pas besoin de VBA.
 

zarkoffe

XLDnaute Nouveau
Merci pour ton retour.
Le soucis, c'est que SOMME.SI.ENS exige les 2 paramètres, comme un "ET", et je veux un "OU".
VB:
=SOMME.SI.ENS(B8:B200,F8:F200,"Pliage",F8:F200,"plieuse")
Ici, il me prendra les 2 paramètres, je ne veux que l'un ou l'autre.

Merci
 

JHA

XLDnaute Barbatruc
Bonjour à tous,

Tu peux utiliser sommeprod((plage1=condition1)+(plage1 = condition2)+(plage1=condition 3)
le "+" signifie "ou" dans la formule.

Pour plus d'infos, il faudrait joindre un petit fichier exemple.

JHA
 

zarkoffe

XLDnaute Nouveau
Merci pour ta réponse.
Tout à fait, j'ai déjà essayé par cette voix, sans succès. Je dois faire une erreur dans la syntaxe, je ne sais pas comment utiliser le OU :
VB:
=SOMME.SI(B8:B200;"*Pliage*";F8:B200) OR (SOMME.SI(B8:B200;"*plieuse*";F8:F200))

Concernant ta solution JHA, j'ai tenté mais Excel ne semble pas interprêter la commande : il me laisse du texte. Pourtant je n'ai pas mis de ' au début de la commande, et je respecte la syntaxe.
wtf.png

Merci
 
Dernière édition:

Jocelyn

XLDnaute Barbatruc
Bonjour le Forum,
Bonjour zarkoffe, Etoto, JHA :),

Pour le fun en considérant que pliage et plieuse commence par pli

on peut aussi le faire de cette façon

=sommeprod((estnum(cherche("pli";F8:F200)))*B8:B200)

Cordialement
 

JHA

XLDnaute Barbatruc
Bonjour à tous,
Bonjour @Jocelyn :)

Avec le fichier c'est plus clair.
VB:
=SOMMEPROD((ESTNUM(CHERCHE("plieuse";$B$1:$B$12)))+(ESTNUM(CHERCHE("pliage";$B$1:$B$12)));$F$1:$F$12)

JHA
 

Pièces jointes

  • programme.xlsm
    16 KB · Affichages: 6
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
315 098
Messages
2 116 189
Membres
112 679
dernier inscrit
Yupanki