et ensuite de faire ta formule NB.SI sur la plage E8:E200
-- @+
Xav "NicolasB" a écrit dans le message de news:346b01c48f3c$10559370$ Salut,
J'aimerais compter le nbre de cellule non vide qui contiennent 2004 dans une chaîne de caractères.
Ma formule =nb.si('table enregistrement'!D8:D200;Trouve ('table enregistrement'!D8:D200;"2004";1)) me renvoi 0 alors qu'il y en a au moins 1)
Merci pour votre aide
Nicolas B.
Salut,
Dans NB.SI, le critère est un chaine de caractères ("10", "", ">10"...). Tu ne peux pas mettre de fonctions. En plus Trouve renvoie une erreur lorsqu'il ne trouve rien.
En formule matricielle : =-SOMME(ESTERREUR(TROUVE("2004";A1:A10))-1)
A+ Nicolas B.
NicolasB wrote:
Salut,
J'aimerais compter le nbre de cellule non vide qui contiennent 2004 dans une chaîne de caractères.
Ma formule =nb.si('table enregistrement'!D8:D200;Trouve ('table enregistrement'!D8:D200;"2004";1)) me renvoi 0 alors qu'il y en a au moins 1)
Merci pour votre aide
Salut,
Dans NB.SI, le critère est un chaine de caractères ("10", "",
">10"...). Tu ne peux pas mettre de fonctions. En plus Trouve renvoie
une erreur lorsqu'il ne trouve rien.
En formule matricielle :
=-SOMME(ESTERREUR(TROUVE("2004";A1:A10))-1)
A+
Nicolas B.
NicolasB wrote:
Salut,
J'aimerais compter le nbre de cellule non vide qui
contiennent 2004 dans une chaîne de caractères.
Ma formule =nb.si('table enregistrement'!D8:D200;Trouve
('table enregistrement'!D8:D200;"2004";1)) me renvoi 0
alors qu'il y en a au moins 1)
Dans NB.SI, le critère est un chaine de caractères ("10", "", ">10"...). Tu ne peux pas mettre de fonctions. En plus Trouve renvoie une erreur lorsqu'il ne trouve rien.
En formule matricielle : =-SOMME(ESTERREUR(TROUVE("2004";A1:A10))-1)
A+ Nicolas B.
NicolasB wrote:
Salut,
J'aimerais compter le nbre de cellule non vide qui contiennent 2004 dans une chaîne de caractères.
Ma formule =nb.si('table enregistrement'!D8:D200;Trouve ('table enregistrement'!D8:D200;"2004";1)) me renvoi 0 alors qu'il y en a au moins 1)
Merci pour votre aide
Alain CROS
Bonjour
En essayant sans succès de comprendre la logique de la formule de Nicolas B. J'ai trouvé ça. =SOMME(NB(TROUVE("2004";A1:A10))) en matricielle
Alain CROS
"Nicolas B." a écrit dans le message de news:
Salut,
Dans NB.SI, le critère est un chaine de caractères ("10", "", ">10"...). Tu ne peux pas mettre de fonctions. En plus Trouve renvoie une erreur lorsqu'il ne trouve rien.
En formule matricielle : =-SOMME(ESTERREUR(TROUVE("2004";A1:A10))-1)
A+ Nicolas B.
Bonjour
En essayant sans succès de comprendre la logique de la formule de Nicolas B.
J'ai trouvé ça.
=SOMME(NB(TROUVE("2004";A1:A10)))
en matricielle
Alain CROS
"Nicolas B." <nicolas.bruot@adresse.bidon.invalid> a écrit dans le message de news: e6heLQ0jEHA.3876@TK2MSFTNGP15.phx.gbl...
Salut,
Dans NB.SI, le critère est un chaine de caractères ("10", "",
">10"...). Tu ne peux pas mettre de fonctions. En plus Trouve renvoie
une erreur lorsqu'il ne trouve rien.
En formule matricielle :
=-SOMME(ESTERREUR(TROUVE("2004";A1:A10))-1)
En essayant sans succès de comprendre la logique de la formule de Nicolas B. J'ai trouvé ça. =SOMME(NB(TROUVE("2004";A1:A10))) en matricielle
Alain CROS
"Nicolas B." a écrit dans le message de news:
Salut,
Dans NB.SI, le critère est un chaine de caractères ("10", "", ">10"...). Tu ne peux pas mettre de fonctions. En plus Trouve renvoie une erreur lorsqu'il ne trouve rien.
En formule matricielle : =-SOMME(ESTERREUR(TROUVE("2004";A1:A10))-1)
A+ Nicolas B.
Nicolas B.
Salut Alain,
En effet, ta formule est plus courte et plus simple (elle évite le disgracieux ESTERREUR :-)
Pour la logique, quelques explications :
TROUVE renvoie un nombre si 2004 est trouvé, sinon une erreur (Valeur!). Il suffit donc de compter le nombre de cellules pour lesquelles il n'y a pas d'erreur. On pourrait écrire : =SOMME(NON(ESTERREUR(TROUVE("2004";A1:A10))))
Mais pour gagner quelques caractères, on peut faire autrement. La fonction ESTERREUR renvoie VRAI ou FAUX, soit 1 ou 0. On voudrait en fait compter 1 quand il y a 0 et 0 quand il y a 1. En soustrayant 1 à la condition, on a -1 quand ESTERREUR renvoie FAUX et 0 quand c'est VRAI : =SOMME(ESTERREUR(TROUVE("2004";A1:A10))-1)
La somme donne le nombre de cellules contenant 2004 en négatif et il faut donc prendre l'opposé : =-SOMME(ESTERREUR(TROUVE("2004";A1:A10))-1)
Pffff, tout ça pour deux caractères... ;-)
A+ Nicolas B.
Alain CROS wrote:
Bonjour
En essayant sans succès de comprendre la logique de la formule de Nicolas B. J'ai trouvé ça. =SOMME(NB(TROUVE("2004";A1:A10))) en matricielle
Alain CROS
Salut Alain,
En effet, ta formule est plus courte et plus simple (elle évite le
disgracieux ESTERREUR :-)
Pour la logique, quelques explications :
TROUVE renvoie un nombre si 2004 est trouvé, sinon une erreur (Valeur!).
Il suffit donc de compter le nombre de cellules pour lesquelles il n'y a
pas d'erreur. On pourrait écrire :
=SOMME(NON(ESTERREUR(TROUVE("2004";A1:A10))))
Mais pour gagner quelques caractères, on peut faire autrement. La
fonction ESTERREUR renvoie VRAI ou FAUX, soit 1 ou 0. On voudrait en
fait compter 1 quand il y a 0 et 0 quand il y a 1.
En soustrayant 1 à la condition, on a -1 quand ESTERREUR renvoie FAUX et
0 quand c'est VRAI :
=SOMME(ESTERREUR(TROUVE("2004";A1:A10))-1)
La somme donne le nombre de cellules contenant 2004 en négatif et il
faut donc prendre l'opposé :
=-SOMME(ESTERREUR(TROUVE("2004";A1:A10))-1)
Pffff, tout ça pour deux caractères...
;-)
A+
Nicolas B.
Alain CROS wrote:
Bonjour
En essayant sans succès de comprendre la logique de la formule de Nicolas B.
J'ai trouvé ça.
=SOMME(NB(TROUVE("2004";A1:A10)))
en matricielle
En effet, ta formule est plus courte et plus simple (elle évite le disgracieux ESTERREUR :-)
Pour la logique, quelques explications :
TROUVE renvoie un nombre si 2004 est trouvé, sinon une erreur (Valeur!). Il suffit donc de compter le nombre de cellules pour lesquelles il n'y a pas d'erreur. On pourrait écrire : =SOMME(NON(ESTERREUR(TROUVE("2004";A1:A10))))
Mais pour gagner quelques caractères, on peut faire autrement. La fonction ESTERREUR renvoie VRAI ou FAUX, soit 1 ou 0. On voudrait en fait compter 1 quand il y a 0 et 0 quand il y a 1. En soustrayant 1 à la condition, on a -1 quand ESTERREUR renvoie FAUX et 0 quand c'est VRAI : =SOMME(ESTERREUR(TROUVE("2004";A1:A10))-1)
La somme donne le nombre de cellules contenant 2004 en négatif et il faut donc prendre l'opposé : =-SOMME(ESTERREUR(TROUVE("2004";A1:A10))-1)
Pffff, tout ça pour deux caractères... ;-)
A+ Nicolas B.
Alain CROS wrote:
Bonjour
En essayant sans succès de comprendre la logique de la formule de Nicolas B. J'ai trouvé ça. =SOMME(NB(TROUVE("2004";A1:A10))) en matricielle
Alain CROS
AV
Pour, dans la plage D8:D200, compter le nbre de cellules contenant (au moins une fois) la chaîne "2004" : =NB.SI(D8:D200;"*2004*")
AV
Pour, dans la plage D8:D200, compter le nbre de cellules contenant (au moins une
fois) la chaîne "2004" :
=NB.SI(D8:D200;"*2004*")
Merci pour toutes les réponses, la dernière solution de AV me renvoi 0 j'ai réussi à réaliser une boucle en vba comme suit et cela semble fonctionner
for each c in [D8:D200] if c.text like "*2004" then compte=compte+1 end if next
Je vous remercie pour votre aide.
-----Message d'origine----- Pour, dans la plage D8:D200, compter le nbre de cellules contenant (au moins une
fois) la chaîne "2004" : =NB.SI(D8:D200;"*2004*")
AV
.
AV
Merci pour toutes les réponses, la dernière solution de AV me renvoi 0
Tu peux me donner un exemple des valeurs de la plage examinée ? S'agit-il vraiment, comme dans ta question originelle, de "cellule non vide qui contiennent 2004 dans une chaîne de caractères." ?
PS : la solution par macro (boucle) ne me parait pas une bonne alternative même si, dans ton exemple, le temps d'exécution n'est pas "visiblement" inférieur
AV
Merci pour toutes les réponses, la dernière solution de AV
me renvoi 0
Tu peux me donner un exemple des valeurs de la plage examinée ?
S'agit-il vraiment, comme dans ta question originelle, de "cellule non vide qui
contiennent 2004 dans une chaîne de caractères." ?
PS : la solution par macro (boucle) ne me parait pas une bonne alternative même
si, dans ton exemple, le temps d'exécution n'est pas "visiblement" inférieur
Merci pour toutes les réponses, la dernière solution de AV me renvoi 0
Tu peux me donner un exemple des valeurs de la plage examinée ? S'agit-il vraiment, comme dans ta question originelle, de "cellule non vide qui contiennent 2004 dans une chaîne de caractères." ?
PS : la solution par macro (boucle) ne me parait pas une bonne alternative même si, dans ton exemple, le temps d'exécution n'est pas "visiblement" inférieur
AV
NicolasB
Les valeurs de la plages examinées sont des dates, mais auusi des cellules vides. et je souhaite compter toutes les dates contenant 2004.
-----Message d'origine-----
Merci pour toutes les réponses, la dernière solution de AV
me renvoi 0
Tu peux me donner un exemple des valeurs de la plage examinée ?
S'agit-il vraiment, comme dans ta question originelle, de "cellule non vide qui
contiennent 2004 dans une chaîne de caractères." ?
PS : la solution par macro (boucle) ne me parait pas une bonne alternative même
si, dans ton exemple, le temps d'exécution n'est pas "visiblement" inférieur
AV
.
Les valeurs de la plages examinées sont des dates, mais
auusi des cellules vides. et je souhaite compter toutes
les dates contenant 2004.
-----Message d'origine-----
Merci pour toutes les réponses, la dernière solution de
AV
me renvoi 0
Tu peux me donner un exemple des valeurs de la plage
examinée ?
S'agit-il vraiment, comme dans ta question originelle,
de "cellule non vide qui
contiennent 2004 dans une chaîne de caractères." ?
PS : la solution par macro (boucle) ne me parait pas une
bonne alternative même
si, dans ton exemple, le temps d'exécution n'est
pas "visiblement" inférieur
Les valeurs de la plages examinées sont des dates, mais auusi des cellules vides. et je souhaite compter toutes les dates contenant 2004.
-----Message d'origine-----
Merci pour toutes les réponses, la dernière solution de AV
me renvoi 0
Tu peux me donner un exemple des valeurs de la plage examinée ?
S'agit-il vraiment, comme dans ta question originelle, de "cellule non vide qui
contiennent 2004 dans une chaîne de caractères." ?
PS : la solution par macro (boucle) ne me parait pas une bonne alternative même
si, dans ton exemple, le temps d'exécution n'est pas "visiblement" inférieur
AV
.
AV
Les valeurs de la plages examinées sont des dates, mais auusi des cellules vides. et je souhaite compter toutes les dates contenant 2004.
Comme ça je comprends mieux car ça n'est plus la question d'origine ! "compter le nbre de cellule non vide qui contiennent 2004 dans une chaîne de caractères." Par ailleurs, s'il s'agit de vraies dates, la formule proposée par A.CROS ne peut fonctionner....
Quid de vraies/fausses dates...? Pas grave...
AV
-----Message d'origine-----
Merci pour toutes les réponses, la dernière solution de AV
me renvoi 0
Tu peux me donner un exemple des valeurs de la plage examinée ?
S'agit-il vraiment, comme dans ta question originelle, de "cellule non vide qui
contiennent 2004 dans une chaîne de caractères." ?
PS : la solution par macro (boucle) ne me parait pas une bonne alternative même
si, dans ton exemple, le temps d'exécution n'est pas "visiblement" inférieur
AV
.
Les valeurs de la plages examinées sont des dates, mais
auusi des cellules vides. et je souhaite compter toutes
les dates contenant 2004.
Comme ça je comprends mieux car ça n'est plus la question d'origine !
"compter le nbre de cellule non vide qui
contiennent 2004 dans une chaîne de caractères."
Par ailleurs, s'il s'agit de vraies dates, la formule proposée par A.CROS ne
peut fonctionner....
Quid de vraies/fausses dates...?
Pas grave...
AV
-----Message d'origine-----
Merci pour toutes les réponses, la dernière solution de
AV
me renvoi 0
Tu peux me donner un exemple des valeurs de la plage
examinée ?
S'agit-il vraiment, comme dans ta question originelle,
de "cellule non vide qui
contiennent 2004 dans une chaîne de caractères." ?
PS : la solution par macro (boucle) ne me parait pas une
bonne alternative même
si, dans ton exemple, le temps d'exécution n'est
pas "visiblement" inférieur
Les valeurs de la plages examinées sont des dates, mais auusi des cellules vides. et je souhaite compter toutes les dates contenant 2004.
Comme ça je comprends mieux car ça n'est plus la question d'origine ! "compter le nbre de cellule non vide qui contiennent 2004 dans une chaîne de caractères." Par ailleurs, s'il s'agit de vraies dates, la formule proposée par A.CROS ne peut fonctionner....
Quid de vraies/fausses dates...? Pas grave...
AV
-----Message d'origine-----
Merci pour toutes les réponses, la dernière solution de AV
me renvoi 0
Tu peux me donner un exemple des valeurs de la plage examinée ?
S'agit-il vraiment, comme dans ta question originelle, de "cellule non vide qui
contiennent 2004 dans une chaîne de caractères." ?
PS : la solution par macro (boucle) ne me parait pas une bonne alternative même
si, dans ton exemple, le temps d'exécution n'est pas "visiblement" inférieur