![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
| Excel Forum d'entraide sur Excel |
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Membre à l'essai
![]() |
Bonjour,
la fonction SOMME.SI s'utilise pour un critère sur une plage. J'aimerai pouvoir effectuer la même chose, mais avec plusieurs critères à vérifier sur plusieurs plages, avant de faire la somme d'une plage. Mais si j'essaye de la combiner avec la fonction ET, ça ne marche pas. (Ou peut être je n'ai pas trouvé la syntaxe adéquate, mais ce n'est pas faute d'avoir essayé dans tous les sens) Quelqu'un peut-il m'aider ou connait-il une solution alternative ? Merci pour l'aide, Clarisse. |
|
|
|
|
|
#2 (permalink) |
![]() Date d'inscription: octobre 2006
Localisation: Paris
Âge: 38
Messages: 3 767
|
Mettre ton ET dans une colonne supplémentaire, et faire ton SOMME.SI dessus ?
__________________
Antoun Expert SQL, BO, Essbase
|
|
|
|
|
|
#3 (permalink) |
|
Membre à l'essai
![]() |
ben en fait, j'y ai pensé, mais j'ai besoin de faire des somme.si sur plusieurs critères dans beaucoup de feuille de mon classeur excel, sur des colonnes de plusieurs centaines de lignes.
donc si je met à chaque fois des colonnes avec la fonction ET, mon classeur passe de 1 Mo et qques à 5 Mo; et comme il est utilisé en réseau WIFI dans mon entreprise, il est long à ouvrir et enregistrer etc... donc pas terrible.... |
|
|
|
|
|
#5 (permalink) |
|
Membre Expert
![]() Date d'inscription: novembre 2006
Localisation: Saint etienne
Âge: 46
Messages: 1 033
|
Bonjour à tous
oui c'est bien sommeprod, seules obligations, les plages doivent avoir la meme longueur (taille) et elles doivent etre bornées (pas de A:A) exemple : 3 criteres sur 3 colonnes, somme de la 4eme Code :
=sommeprod((A1:A1000=Critere1) * (B1:B1000 = Crietere2) * (C1:C1000 = Critere3) * D1:D1000) Code :
=Sommeprod((((A1:A1000=Critere1)+(A1:A1000=Critere2))>0);D1:D1000) |
|
|
|
|
|
#6 (permalink) |
![]() Date d'inscription: octobre 2006
Localisation: Paris
Âge: 38
Messages: 3 767
|
l'idée derrière ton utilisation de SOMMEPROD, c'est qu'avec des valeurs booléennes, le ET peut être remplacé par un produit ?
__________________
Antoun Expert SQL, BO, Essbase
|
|
|
|
|
|
#7 (permalink) |
|
Membre Expert
![]() Date d'inscription: novembre 2006
Localisation: Saint etienne
Âge: 46
Messages: 1 033
|
Bonjour
c'est la base meme du booleen, ET = * (exclusif) et OU = + (inclusif) le resultat d'une fonction booleenne = 1 pour vrai et 0 pour faux exemple 1 : si tout est vrai on a donc 1 * 1 * 1 soit 1 * le montant exemple 1 : Si une valeur est fausse ca exclus tout le reste puisque une multiplication par 0 fait 0 exemple 2 : 1 + 1, ou 1 + 0 ou 0 + 1 donne soit 1 soit 2. le resultat s'il est superieur à 0 (test > 0) renvoi Vrai (1), sinon renvoi Faux (0) Edit : une petite precision dans le vba : La valeur True = -1 et pas 1 ce qui pose probleme (enfin un tout petit car -1 * -1 = 1) code à essayer : Code :
Sub essai() Dim drap As Boolean, a As Integer drap = True: a = CInt(drap) MsgBox a drap = False: a = CInt(drap) MsgBox a End Sub |
|
|
|
|
|
#9 (permalink) |
![]() Date d'inscription: octobre 2006
Localisation: Paris
Âge: 38
Messages: 3 767
|
Merci aussi ! Je n'avais jamais réussi à comprendre l'intérêt du SOMMEPROD, mais l'exemple de Clarisse est très parlant.
__________________
Antoun Expert SQL, BO, Essbase
|
|
|
|
|
|
#10 (permalink) |
|
Membre Expert
![]() Date d'inscription: novembre 2006
Localisation: Saint etienne
Âge: 46
Messages: 1 033
|
re:
personnelement, je l'utilise aussi pour faire un rechercheV avec plussieurs criteres de recherche mais uniquement dans la fonction exclusif Code :
=Index(A:A;sommeprod((A1:A1000=Critere1)*(B1:B1000=Critere2)*ligne(A1:A1000))) |
|
|
|
|
|
#11 (permalink) |
![]() Date d'inscription: octobre 2006
Localisation: Paris
Âge: 38
Messages: 3 767
|
la fonction exclusif ???
(désolé, au bureau je n'ai que la version anglaise d'Excel)
__________________
Antoun Expert SQL, BO, Essbase
|
|
|
|
|
|
#13 (permalink) |
![]() Date d'inscription: octobre 2006
Localisation: Paris
Âge: 38
Messages: 3 767
|
#@+°~µ : ?
si je comprends bien, quand tu dis "exclusif", ça veut dire "OU exclusif" ?
__________________
Antoun Expert SQL, BO, Essbase
|
|
|
|
|
|
#14 (permalink) |
|
Membre Expert
![]() Date d'inscription: novembre 2006
Localisation: Saint etienne
Âge: 46
Messages: 1 033
|
re:
si(et(A1=1;A2=3);1;0)' le test est exclusif puisque les deux valeurs doivent etre exactes si(OU(A1=1;A2=3);1;0) ' le test est inclusif puis une seule des 2 valeurs est suffisante avec et on peut ecrire |
|
|
|
|
![]() |
![]() |
||
fonction SOMME.SI utilisée avec fonction ET ?
|
||
| Outils de la discussion | |
|
|