SUMIF ou SOMPROD

FKRM

XLDnaute Nouveau
Bonjour,

Je souhaite effectuer en VBA des sommes sur des critères présents dans différentes colonnes :

Vendeur Produit
Paul XX-T1-YY
Jean XX-T2-ZZ
Pierre XX-T1-YY
Paul ZZ-T1-XX
Jean YY-T1-XX
Paul ZZ-T2-YY
Pierre XX-T3-XX
Paul YY-T1-XX


Par exemple, je souhaite savoir pour le vendeur Paul combien de produits contenant "T1" ont été vendus

Résultat attendu : 3

Je ne sais pas quel formule utilisée SOMPROD ou SUMIF

Est-ce que quelqu'un a une idée ?

Merci de votre aide

Francois
 

job75

XLDnaute Barbatruc
Re : SUMIF ou SOMPROD

Bonsoir,

Dans la feuille de calcul, la formule pourrait être :

=SOMMEPROD((A1:A100="Paul")*ESTNUM(CHERCHE("*T1*";B1:B100)))

En VBA, essayer :

Evaluate("SUMPRODUCT((A1:A100=""Paul"")*ISNUMBER(SEARCH(""*T1*"",B1:B100)))")

A+
 

FKRM

XLDnaute Nouveau
Re : SUMIF ou SOMPROD

Merci de ta réponse mais malheureusement ca ne marche pas.

Je rencontre une erreur #NAME

avec la formule suivante :

=SUMPROD((A1:A9="Paul")*ISNUMBER(FIND("*T1*"; B1:B9)))

ET si je teste simplement la deuxième partie du code

ISNUMBER(FIND("*T1*"; B1:B9)))

La valeur retournée est égale à FALSE ce qui semble vouloir dire qu'il n'arrive pas à détecter la valeur T1 dans les différentes chaînes de caractères

Je ne comprends pas ce qui se passe

Merci de votre aide

Francois
 

job75

XLDnaute Barbatruc
Re : SUMIF ou SOMPROD

Re,

FIND (TROUVE) n'accepte pas les caractères génériques (* ou ?), il faut utiliser SEARCH (CHERCHE). Mais alors la fonction ne fait pas de différence entre T1 et t1.

Pour éviter tout problème, utiliser donc dans la feuille de calcul :

=SOMMEPROD((A1:A100="Paul")*(B1:B100<>SUBSTITUE(B1:B100;"T1";"")))

et en VBA, essayer :

Evaluate("SUMPRODUCT((A1:A100=""Paul"")*(B1:B100<>SUBSTITUTE(B1:B100,""T1"","""")))")

A+

Edit : attention, dans votre formule, vous mélangez les syntaxes française (PROD et point virgule) et anglaise...
 
Dernière édition:

FKRM

XLDnaute Nouveau
Re : SUMIF ou SOMPROD

Bonjour,

Désolé ca ne marche toujours pas. (message #NAME)

Je travaille avec une version anglaise d'Excel mais je ne pense pas que ca change quoi que ce soit.

Ca ne semble pourtant pas compliqué à priori mais pas moyen d'y arriver.

Quelqu'un a-t-il une idée ?

Merci de votre aide

Francois
 

job75

XLDnaute Barbatruc
Re : SUMIF ou SOMPROD

Bonjour François,

Vous devez respecter la syntaxe. #NAME est renvoyée car la fonction utilisée n'est pas correcte. La version anglaise de la formule doit être (copiez-la) :

=SUMPRODUCT((A1:A100="Paul")*(B1:B100<> SUBSTITUTE(B1:B100,"T1","")))

et en VBA :

Evaluate("SUMPRODUCT((A1:A100=""Paul"")*(B1:B100<> SUBSTITUTE(B1:B100,""T1"","""")))")

A+
 
Dernière édition:

FKRM

XLDnaute Nouveau
Re : SUMIF ou SOMPROD

Rebonjour job75,

Tout d'abord merci de ta patience....

Je n'ai maintenant plus d'erreur mais le résultat de la formule = 0, il doit donc y avoir un souci avec la recherche du texte à l'intérieur de la cellule.

Je ne maîtrise pas du tout les fonctions liées au texte et là je galère.

Ci-joint un fichier avec un exemple, si ca peut aider....

Merci encore

A+

Francois
 

Pièces jointes

  • Test SUMPROD.xls
    14 KB · Affichages: 75

Tibo

XLDnaute Barbatruc
Re : SUMIF ou SOMPROD

Bonjour,

Ton souci est dû au fait qu'il y a des espaces dans ta colonne A après les prénoms.

Une correction, à adapter dans la langue de Shakeaspeare :

Code:
=SOMMEPROD((SUPPRESPACE(Vendeur)="paul")*(ESTNUM(CHERCHE("T1";Produit))))

@+

Edit :
l'équivalent de SUPPRESPACE en anglais est TRIM
l'équivalent de CHERCHE en anglais est SEARCH
l'équivalent de ESTNUM en anglais est ISNUMBER

J'espère que tu sauras ainsi adapter

@+
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : SUMIF ou SOMPROD

Re,

Effectivement, il faut supprimer les espaces (utiliser TRIM en anglais).

Par ailleurs, autant pour moi, FIND marche très bien car il est en fait inutile d'utiliser le caractère générique * !!

=SUMPRODUCT((TRIM(A1:A9)="Paul")*ISNUMBER(FIND("T1",B1:B9)))

et en VBA :

Evaluate("SUMPRODUCT((TRIM(A1:A9)=""Paul"")*ISNUMBER(FIND(""T1"",B1:B9)))")

A+
 
Dernière édition:

Discussions similaires

T
Réponses
2
Affichages
18 K
T

Statistiques des forums

Discussions
312 609
Messages
2 090 194
Membres
104 449
dernier inscrit
Miguel937