OVH Cloud OVH Cloud

Evaluate

12 réponses
Avatar
Frédo P.
Si AV confirme:
Evaluate("Sum((" & [znAch] & "=" & """" & Prd & """" & ") *" & [Rgrg] &
")")
Le principe d'une telle formule, me dire si jme trompe.
il faut mettre:les mots clé,les parenthèses et les opérateurs entre
guillemets, les tableaux entre crochets et les variables entre 8
guillemets.rien que ça?

--
Fred
Pour répondre enlevez nsp

10 réponses

1 2
Avatar
AV
Patience : Réponse (sous forme de dissertation....Pfffff....encore des devoirs à
la maison !) en cours d'élaboration !

AV
Avatar
sabatier
ça fait quand même 3 semaines que t'es dessus, le limousin, et les
vacances sont bientôt finies...
quousque tandem abutere patientia nostra, hein?
jps

AV a écrit:
Patience : Réponse (sous forme de dissertation....Pfffff....encore des devoirs à
la maison !) en cours d'élaboration !

AV




Avatar
AV
ça fait quand même 3 semaines que t'es dessus, le limousin, et les
vacances sont bientôt finies...
quousque tandem abutere patientia nostra, hein?


Mais non, mais non, j'abuserais pas...mais comme ça doit figurer dans ton
prochain bouquin ("Edition du Tonneau"), je peaufine !
Et puis là, le jour est levé donc je pars aux champignons !

AV

Avatar
Frédo P.
0h! t'as / (on a) pas de chance cette année, les champ. c'est comme .. la
cani ... les a tués.

--
Fred


"AV" a écrit dans le message de news:
bnvm4o$h6r$
ça fait quand même 3 semaines que t'es dessus, le limousin, et les
vacances sont bientôt finies...
quousque tandem abutere patientia nostra, hein?


Mais non, mais non, j'abuserais pas...mais comme ça doit figurer dans ton
prochain bouquin ("Edition du Tonneau"), je peaufine !
Et puis là, le jour est levé donc je pars aux champignons !

AV





Avatar
AV
Si AV confirme:
Evaluate("Sum((" & [znAch] & "=" & """" & Prd & """" & ") *" & [Rgrg] &
")")
Le principe d'une telle formule, me dire si jme trompe.
il faut mettre:les mots clé,les parenthèses et les opérateurs entre
guillemets, les tableaux entre crochets et les variables entre 8
guillemets.rien que ça?


Heu. c'est pas exactemnt ça.

Allons-y !

Généralités sur la méthode/fonction Evaluate :
* Ne pas se priver de consulter l'Aide
NB : tout n'est pas strictement vrai : on peut utiliser (si l'option a été prise
dans les paramètres généraux ) des références de type R1C1 !
L'avantage de la notation de style A1, est qu'elle est valide, quel que soit le
paramétrage !
* Elle a un argument sous forme de chaîne
* Elle accepte 2 syntaxes :
// Syntaxe courte : la chaîne entre crochets [ ], dans la mesure où il n'y a pas
de variable(s) à intégrer
Cette syntaxe implique la non-utilisation des guillemets
// Syntaxe longue : Evaluate(la Chaîne), qui est d'un usage limité (car
avantageusement remplacé par [la Chaîne]), ou Evaluate("la Chaine") ou bien, si
la chaîne est composée de plusieurs éléments, une concaténation :
Evaluate("1°sous-chaîne" &"2°sous-chaîne" &"..")
NDLR : La difficulté, lorsqu'il y a une concaténation, est de "ficeller" une
chaîne syntaxiquement correcte, pour qu'elle soit évaluée !
* Elle nécessite de lui parler en langage d'Outre-Manche :
Noms de fonctions en anglais, la virgule comme séparateur d'arguments dans les
fonctions et le point comme symbole décimal (pour que, évidemment, il n'y ai pas
de confusion entre le séparateur d'argument et le séparateur décimal)
* Elle est capable d'interpréter et donc de calculer, les formules
matricielles ..lorsqu'elles le sont !

## Exemple simple N°1 - Faire le calcul suivant = 5*2
* Syntaxe courte : [5*2]
* Syntaxe longue : Evaluate("5 * 2") ou bien Evaluate(5 * 2)
Dans ce cas là (constantes numériques), la mise entre "" n'est pas nécessaire

## Exemple simple N°2 - Calcul d'une formule (avec séparateur décimal local virgule (beurkkk !..)
=SOMME.SI(A1:A5;100,5;B1:B5)
* Syntaxe courte : [SUMIF(A1:A5,100.5,B1:B5)]
* Syntaxe longue : Evaluate("SUMIF(A1:A5,100.5,B1:B5)")
PS : En aucun cas, il n'est nécessaire de mettre le signe = au début, ou de
respecter la casse pour le nom des fonctions

## Exemple moins simple N°3 - Calcul de la même formule en intégrant une
variable (2° argument de SOMME.SI)
Méthode longue obligatoire et obligation de concaténer !
laVar = 100.5
Résultat = Evaluate("SUMIF(A1:A5," & laVar & ",B1:B5)")

## Exemple moins simple N°4 - Calcul d'une formule avec, en argument, une
constante chaîne
=SOMME.SI(A1:A5;"loulou";B1:B5)
* Syntaxe courte : [SUMIF(A1:A5,"loulou",B1:B5)]
* Syntaxe longue (aïe, aïe...) > il faut doubler les guillemets :
Evaluate("SUMIF(A1:A5,""loulou"",B1:B5)")

## Exemple moins simple N°5 - Calcul de la même formule avec une variable chaîne
* Méthode longue obligatoire et obligation de concaténer pour reconstituer
chaque élément de la formule !
Il va falloir mettre les double-guillemets entre guillemets, donc 4 guillemets
avant et après la variable !
laVar = "loulou"
Résultat = Evaluate("SUMIF(A1:A5," & """" & laVar & """" & ",B1:B5)")
* Pour améliorer la lisibilité, on peut utiliser une autre variable en guise de
double-guillemets en utilisant le code Ascii (34) :
guillm = Chr(34)
laVar = "loulou"
Résultat = Evaluate("SUMIF(A1:A5," & guillm & laVar & guillm & ",B1:B5)")

## Exemple moins simple N°6 - Calcul de la même formule avec une variable chaîne
et une plage variable (dernière ligne des plages A1:A5 et B1:B5 variable)
*Méthode longue obligatoire et obligation de concaténer pour reconstituer
chaque élément de la formule !
laVar = "loulou"
Résultat = Evaluate("SUMIF(" & Range("A1:A" & [A65536].End(3).Row).Address &
"," & """" & laVar & """" & "," & Range("B1:B" & [A65536].End(3).Row).Address &
")")
* La même en plus clair (?) :
guillm = Chr(34)
laVar = "loulou"
derL = Range("A65536").End(xlUp).Row ou bien = [A65536].End(3).Row
Résultat = Evaluate("SUMIF(" & Range("A1:A" & derL).Address & "," & guillm &
laVar & guillm & "," & Range("B1:B" & derL).Address & ")")
* Encore la même, en encore plus clair (?) :
guillm = Chr(34)
laVar = "loulou"
derL = [A65536].End(3).Row
Résultat = Evaluate("SUMIF(" & "A1:A" & derL & "," & guillm & laVar & guillm &
"," & "B1:B" & derL & ")")

## Exemple moins simple N°7 - Même calcul mais la feuille est autre que la
feuille active, donc il faut préciser son nom !
* Version longuette :
laVar = "loulou"
Résultat = Evaluate("SUMIF(" & "Feuil5!" & Range("Feuil5!A1:A" &
Range("Feuil5!A65536").End(xlUp).Row).Address & "," & """" & laVar & """" &
",Feuil5!" & Sheets("Feuil5").Range("B1:B" &
Range("Feuil5!A65536").End(xlUp).Row).Address & ")")
* Version plus claire (?) en utilisant des variables intermédiaires :
guillm = Chr(34)
laVar = "loulou"
plg1 = "Feuil5!A1:A" & [Feuil5!A65536].End(3).Row
plg2 = "Feuil5!B1:B" & [Feuil5!A65536].End(3).Row
Résultat = Evaluate("SUMIF(" & plg1 & "," & guillm & laVar & guillm & "," & plg2
& ")")

## Exemple simple N°8 - Cas particulier d'utilisation de plages définies au
niveau du classeur - C'est devient beaucoup plus lisible !
Exemple : A1:Ax est nommée "plg1" et B1:Bx est nommée "plg2"
Résultat = Evaluate("SUMIF(plg1,""loulou"",plg2)")
En plus concis :
Résultat = [SUMIF(plg1,"loulou",plg2)]

C'est tout pour aujourd'hui !
PS : Le texte qui précède est soumis (dans son intégralité) à la loi du
Copyright
Toute reproduction, copier/coller ou simple plagiat sont strictement interdits
sans une demande écrite à l'auteur, qui la donnera sans difficulté si la
dite-demande est accompagnée d'une donation conséquente et en espèces, pour ses
bonnes ouvres !
Le contacter en bal perso pour avoir une idée de la notion de "conséquente"

AV

"Frédo P." a écrit dans le message news:
3fa2884d$0$27589$

--
Fred
Pour répondre enlevez nsp




Avatar
Misange
Bon OK je te contacte en bal perso ;-))

--
Misange migrateuse http://www.excelabo.net
==== Attention : Disciplus a déménagé !====



"AV" a écrit dans le message de news:
bo01nu$jg$
Si AV confirme:
Evaluate("Sum((" & [znAch] & "=" & """" & Prd & """" & ") *" & [Rgrg] &
")")
Le principe d'une telle formule, me dire si jme trompe.
il faut mettre:les mots clé,les parenthèses et les opérateurs entre
guillemets, les tableaux entre crochets et les variables entre 8
guillemets.rien que ça?


Heu. c'est pas exactemnt ça.

Allons-y !

Généralités sur la méthode/fonction Evaluate :
* Ne pas se priver de consulter l'Aide
NB : tout n'est pas strictement vrai : on peut utiliser (si l'option a été
prise

dans les paramètres généraux ) des références de type R1C1 !
L'avantage de la notation de style A1, est qu'elle est valide, quel que
soit le

paramétrage !
* Elle a un argument sous forme de chaîne
* Elle accepte 2 syntaxes :
// Syntaxe courte : la chaîne entre crochets [ ], dans la mesure où il n'y
a pas

de variable(s) à intégrer
Cette syntaxe implique la non-utilisation des guillemets
// Syntaxe longue : Evaluate(la Chaîne), qui est d'un usage limité (car
avantageusement remplacé par [la Chaîne]), ou Evaluate("la Chaine") ou
bien, si

la chaîne est composée de plusieurs éléments, une concaténation :
Evaluate("1°sous-chaîne" &"2°sous-chaîne" &"..")
NDLR : La difficulté, lorsqu'il y a une concaténation, est de "ficeller"
une

chaîne syntaxiquement correcte, pour qu'elle soit évaluée !
* Elle nécessite de lui parler en langage d'Outre-Manche :
Noms de fonctions en anglais, la virgule comme séparateur d'arguments dans
les

fonctions et le point comme symbole décimal (pour que, évidemment, il n'y
ai pas

de confusion entre le séparateur d'argument et le séparateur décimal)
* Elle est capable d'interpréter et donc de calculer, les formules
matricielles ..lorsqu'elles le sont !

## Exemple simple N°1 - Faire le calcul suivant = 5*2
* Syntaxe courte : [5*2]
* Syntaxe longue : Evaluate("5 * 2") ou bien Evaluate(5 * 2)
Dans ce cas là (constantes numériques), la mise entre "" n'est pas
nécessaire


## Exemple simple N°2 - Calcul d'une formule (avec séparateur décimal
local > virgule (beurkkk !..)

=SOMME.SI(A1:A5;100,5;B1:B5)
* Syntaxe courte : [SUMIF(A1:A5,100.5,B1:B5)]
* Syntaxe longue : Evaluate("SUMIF(A1:A5,100.5,B1:B5)")
PS : En aucun cas, il n'est nécessaire de mettre le signe = au début, ou
de

respecter la casse pour le nom des fonctions

## Exemple moins simple N°3 - Calcul de la même formule en intégrant une
variable (2° argument de SOMME.SI)
Méthode longue obligatoire et obligation de concaténer !
laVar = 100.5
Résultat = Evaluate("SUMIF(A1:A5," & laVar & ",B1:B5)")

## Exemple moins simple N°4 - Calcul d'une formule avec, en argument, une
constante chaîne
=SOMME.SI(A1:A5;"loulou";B1:B5)
* Syntaxe courte : [SUMIF(A1:A5,"loulou",B1:B5)]
* Syntaxe longue (aïe, aïe...) > il faut doubler les guillemets :
Evaluate("SUMIF(A1:A5,""loulou"",B1:B5)")

## Exemple moins simple N°5 - Calcul de la même formule avec une variable
chaîne

* Méthode longue obligatoire et obligation de concaténer pour reconstituer
chaque élément de la formule !
Il va falloir mettre les double-guillemets entre guillemets, donc 4
guillemets

avant et après la variable !
laVar = "loulou"
Résultat = Evaluate("SUMIF(A1:A5," & """" & laVar & """" & ",B1:B5)")
* Pour améliorer la lisibilité, on peut utiliser une autre variable en
guise de

double-guillemets en utilisant le code Ascii (34) :
guillm = Chr(34)
laVar = "loulou"
Résultat = Evaluate("SUMIF(A1:A5," & guillm & laVar & guillm & ",B1:B5)")

## Exemple moins simple N°6 - Calcul de la même formule avec une variable
chaîne

et une plage variable (dernière ligne des plages A1:A5 et B1:B5 variable)
*Méthode longue obligatoire et obligation de concaténer pour reconstituer
chaque élément de la formule !
laVar = "loulou"
Résultat = Evaluate("SUMIF(" & Range("A1:A" &
[A65536].End(3).Row).Address &

"," & """" & laVar & """" & "," & Range("B1:B" &
[A65536].End(3).Row).Address &

")")
* La même en plus clair (?) :
guillm = Chr(34)
laVar = "loulou"
derL = Range("A65536").End(xlUp).Row ou bien = [A65536].End(3).Row
Résultat = Evaluate("SUMIF(" & Range("A1:A" & derL).Address & "," & guillm
&

laVar & guillm & "," & Range("B1:B" & derL).Address & ")")
* Encore la même, en encore plus clair (?) :
guillm = Chr(34)
laVar = "loulou"
derL = [A65536].End(3).Row
Résultat = Evaluate("SUMIF(" & "A1:A" & derL & "," & guillm & laVar &
guillm &

"," & "B1:B" & derL & ")")

## Exemple moins simple N°7 - Même calcul mais la feuille est autre que la
feuille active, donc il faut préciser son nom !
* Version longuette :
laVar = "loulou"
Résultat = Evaluate("SUMIF(" & "Feuil5!" & Range("Feuil5!A1:A" &
Range("Feuil5!A65536").End(xlUp).Row).Address & "," & """" & laVar & """"
&

",Feuil5!" & Sheets("Feuil5").Range("B1:B" &
Range("Feuil5!A65536").End(xlUp).Row).Address & ")")
* Version plus claire (?) en utilisant des variables intermédiaires :
guillm = Chr(34)
laVar = "loulou"
plg1 = "Feuil5!A1:A" & [Feuil5!A65536].End(3).Row
plg2 = "Feuil5!B1:B" & [Feuil5!A65536].End(3).Row
Résultat = Evaluate("SUMIF(" & plg1 & "," & guillm & laVar & guillm & ","
& plg2

& ")")

## Exemple simple N°8 - Cas particulier d'utilisation de plages définies
au

niveau du classeur - C'est devient beaucoup plus lisible !
Exemple : A1:Ax est nommée "plg1" et B1:Bx est nommée "plg2"
Résultat = Evaluate("SUMIF(plg1,""loulou"",plg2)")
En plus concis :
Résultat = [SUMIF(plg1,"loulou",plg2)]

C'est tout pour aujourd'hui !
PS : Le texte qui précède est soumis (dans son intégralité) à la loi du
Copyright
Toute reproduction, copier/coller ou simple plagiat sont strictement
interdits

sans une demande écrite à l'auteur, qui la donnera sans difficulté si la
dite-demande est accompagnée d'une donation conséquente et en espèces,
pour ses

bonnes ouvres !
Le contacter en bal perso pour avoir une idée de la notion de
"conséquente"


AV

"Frédo P." a écrit dans le message news:
3fa2884d$0$27589$

--
Fred
Pour répondre enlevez nsp








Avatar
JpPradier
Salut Alain

Alors là, moi je dis Bravo !
Pour l'archivage perso, c'est combien la cotisation ?
Juste histoire de chicaner, tu as parlé de matricielles : tu n'aurais pas un
ch'tit exemple ?
merci d'avance

j-p
Avatar
Frédo P.
Je ne sais quoi dire devant une telle abnégation.
D'accord pour les bonnes ouvres , je serai à18h Gare d'Austerlitz


--
Fred


"Misange" a écrit dans le message de news:
e1Dzo#
Bon OK je te contacte en bal perso ;-))

--
Misange migrateuse http://www.excelabo.net
==== Attention : Disciplus a déménagé !==== >



"AV" a écrit dans le message de news:
bo01nu$jg$
Si AV confirme:
Evaluate("Sum((" & [znAch] & "=" & """" & Prd & """" & ") *" & [Rgrg]
&



")")
Le principe d'une telle formule, me dire si jme trompe.
il faut mettre:les mots clé,les parenthèses et les opérateurs entre
guillemets, les tableaux entre crochets et les variables entre 8
guillemets.rien que ça?


Heu. c'est pas exactemnt ça.

Allons-y !

Généralités sur la méthode/fonction Evaluate :
* Ne pas se priver de consulter l'Aide
NB : tout n'est pas strictement vrai : on peut utiliser (si l'option a
été


prise
dans les paramètres généraux ) des références de type R1C1 !
L'avantage de la notation de style A1, est qu'elle est valide, quel que
soit le

paramétrage !
* Elle a un argument sous forme de chaîne
* Elle accepte 2 syntaxes :
// Syntaxe courte : la chaîne entre crochets [ ], dans la mesure où il
n'y


a pas
de variable(s) à intégrer
Cette syntaxe implique la non-utilisation des guillemets
// Syntaxe longue : Evaluate(la Chaîne), qui est d'un usage limité (car
avantageusement remplacé par [la Chaîne]), ou Evaluate("la Chaine") ou
bien, si

la chaîne est composée de plusieurs éléments, une concaténation :
Evaluate("1°sous-chaîne" &"2°sous-chaîne" &"..")
NDLR : La difficulté, lorsqu'il y a une concaténation, est de "ficeller"
une

chaîne syntaxiquement correcte, pour qu'elle soit évaluée !
* Elle nécessite de lui parler en langage d'Outre-Manche :
Noms de fonctions en anglais, la virgule comme séparateur d'arguments
dans


les
fonctions et le point comme symbole décimal (pour que, évidemment, il
n'y


ai pas
de confusion entre le séparateur d'argument et le séparateur décimal)
* Elle est capable d'interpréter et donc de calculer, les formules
matricielles ..lorsqu'elles le sont !

## Exemple simple N°1 - Faire le calcul suivant = 5*2
* Syntaxe courte : [5*2]
* Syntaxe longue : Evaluate("5 * 2") ou bien Evaluate(5 * 2)
Dans ce cas là (constantes numériques), la mise entre "" n'est pas
nécessaire


## Exemple simple N°2 - Calcul d'une formule (avec séparateur décimal
local > > virgule (beurkkk !..)

=SOMME.SI(A1:A5;100,5;B1:B5)
* Syntaxe courte : [SUMIF(A1:A5,100.5,B1:B5)]
* Syntaxe longue : Evaluate("SUMIF(A1:A5,100.5,B1:B5)")
PS : En aucun cas, il n'est nécessaire de mettre le signe = au début, ou
de

respecter la casse pour le nom des fonctions

## Exemple moins simple N°3 - Calcul de la même formule en intégrant une
variable (2° argument de SOMME.SI)
Méthode longue obligatoire et obligation de concaténer !
laVar = 100.5
Résultat = Evaluate("SUMIF(A1:A5," & laVar & ",B1:B5)")

## Exemple moins simple N°4 - Calcul d'une formule avec, en argument,
une


constante chaîne
=SOMME.SI(A1:A5;"loulou";B1:B5)
* Syntaxe courte : [SUMIF(A1:A5,"loulou",B1:B5)]
* Syntaxe longue (aïe, aïe...) > il faut doubler les guillemets :
Evaluate("SUMIF(A1:A5,""loulou"",B1:B5)")

## Exemple moins simple N°5 - Calcul de la même formule avec une
variable


chaîne
* Méthode longue obligatoire et obligation de concaténer pour
reconstituer


chaque élément de la formule !
Il va falloir mettre les double-guillemets entre guillemets, donc 4
guillemets

avant et après la variable !
laVar = "loulou"
Résultat = Evaluate("SUMIF(A1:A5," & """" & laVar & """" & ",B1:B5)")
* Pour améliorer la lisibilité, on peut utiliser une autre variable en
guise de

double-guillemets en utilisant le code Ascii (34) :
guillm = Chr(34)
laVar = "loulou"
Résultat = Evaluate("SUMIF(A1:A5," & guillm & laVar & guillm &
",B1:B5)")



## Exemple moins simple N°6 - Calcul de la même formule avec une
variable


chaîne
et une plage variable (dernière ligne des plages A1:A5 et B1:B5
variable)


*Méthode longue obligatoire et obligation de concaténer pour
reconstituer


chaque élément de la formule !
laVar = "loulou"
Résultat = Evaluate("SUMIF(" & Range("A1:A" &
[A65536].End(3).Row).Address &

"," & """" & laVar & """" & "," & Range("B1:B" &
[A65536].End(3).Row).Address &

")")
* La même en plus clair (?) :
guillm = Chr(34)
laVar = "loulou"
derL = Range("A65536").End(xlUp).Row ou bien = [A65536].End(3).Row
Résultat = Evaluate("SUMIF(" & Range("A1:A" & derL).Address & "," &
guillm


&
laVar & guillm & "," & Range("B1:B" & derL).Address & ")")
* Encore la même, en encore plus clair (?) :
guillm = Chr(34)
laVar = "loulou"
derL = [A65536].End(3).Row
Résultat = Evaluate("SUMIF(" & "A1:A" & derL & "," & guillm & laVar &
guillm &

"," & "B1:B" & derL & ")")

## Exemple moins simple N°7 - Même calcul mais la feuille est autre que
la


feuille active, donc il faut préciser son nom !
* Version longuette :
laVar = "loulou"
Résultat = Evaluate("SUMIF(" & "Feuil5!" & Range("Feuil5!A1:A" &
Range("Feuil5!A65536").End(xlUp).Row).Address & "," & """" & laVar &
""""


&
",Feuil5!" & Sheets("Feuil5").Range("B1:B" &
Range("Feuil5!A65536").End(xlUp).Row).Address & ")")
* Version plus claire (?) en utilisant des variables intermédiaires :
guillm = Chr(34)
laVar = "loulou"
plg1 = "Feuil5!A1:A" & [Feuil5!A65536].End(3).Row
plg2 = "Feuil5!B1:B" & [Feuil5!A65536].End(3).Row
Résultat = Evaluate("SUMIF(" & plg1 & "," & guillm & laVar & guillm &
","


& plg2
& ")")

## Exemple simple N°8 - Cas particulier d'utilisation de plages définies
au

niveau du classeur - C'est devient beaucoup plus lisible !
Exemple : A1:Ax est nommée "plg1" et B1:Bx est nommée "plg2"
Résultat = Evaluate("SUMIF(plg1,""loulou"",plg2)")
En plus concis :
Résultat = [SUMIF(plg1,"loulou",plg2)]

C'est tout pour aujourd'hui !
PS : Le texte qui précède est soumis (dans son intégralité) à la loi du
Copyright
Toute reproduction, copier/coller ou simple plagiat sont strictement
interdits

sans une demande écrite à l'auteur, qui la donnera sans difficulté si la
dite-demande est accompagnée d'une donation conséquente et en espèces,
pour ses

bonnes ouvres !
Le contacter en bal perso pour avoir une idée de la notion de
"conséquente"


AV

"Frédo P." a écrit dans le message news:
3fa2884d$0$27589$

--
Fred
Pour répondre enlevez nsp












Avatar
AV
D'accord pour les bonnes ouvres , je serai à18h Gare d'Austerlitz


Je décline l'invitation !
Tout paiement "sur la personne" est totalement exclu !
Encore que...si elle est du "sexe faible", accorte, avenante,
primesautière....suit une longue liste de qualités....................
.... je pourrais faire une entorse à la règle !

AV

Avatar
AV
Juste histoire de chicaner, tu as parlé de matricielles : tu n'aurais pas un
ch'tit exemple ?


Ben tu prends la même (juste pour l'exemple) !
Dans la feuille de calcul :
{=SOMME(SI(A1:A5="loulou";B1:B5))}

En vba, mouliné "Evaluate" :
Résultat = [sum(if(A1:A5="loulou",B1:B5))]

AV

1 2