[Calc]NB.SI - problème de formule

Yeps,
Je veux compter le nombre de fois qu'apparaît la chaîne de caractère "math6"
dans une colonne ; mettons en A2:A10.
J'ai des données du type math6/sci3/info en A1 ; math4/scib6/lg1a4 en A2 ;
math6/scib6/lg1n4 en A 3 ; etc.
J'utilise donc la formule suivante : NB.SI(A2:A10;"*math6*") => j'obtiens
invariablement 0 comme résultat.
J'ai testé la même formule dans M$ excel et là ça fonctionne.

(libreOffice 4.02)

Cordialement,

Bonjour

Cocher Outils> Options> Calc> Calcul> Autoriser les caractères
génériques dans les formules
et modifier la formule comme ceci:

=NB.SI(A1:A5;".*math6.*")

Cordialement
Pierre-Yves

Suite...

La modification est bien sûr d'ajouter le . devant *
pas la plage concernée :slight_smile:

Cordialement
Pierre-Yves

Bonjour Pierre-yves,
Je viens de tester la solution que tu proposes, mais j'obtiens toujours 0
comme résultat. J'ai bien effectué la modification dans
outils/options/calc/calculs
<http://nabble.documentfoundation.org/file/n4056492/ScreenShot.jpg>

Gérard

Bonjour,

Tu t'es trompé sur le dernier caractère : il fallait remplacer les * par des .* (un caractère (le point) un nombre quelconque de fois (l'étoile)) et non *.

Laurent BP

Impec !

Grand merci

Suite, suite...

Pourtant :

pierre-yves samyn wrote

La modification est bien sûr d'ajouter le . devant *

Mais en fait c'est de ma faute je n'ai pas expliqué que le .
représente "n'importe quel caractère" dans les expressions
génériques.

Le * veut dire zéro ou n fois le caractère précédent, donc
ici le .

J'en profite pour ajouter une autre solution fonctionnant
que l'option "autoriser" soit cochée ou non :

=SOMMEPROD(ESTERR(TROUVE("math6";A1:A5))=0)

TROUVE recherche le texte et soit donne la position dans
la chaîne, soit retourne #VALEUR
ESTERR donnera FAUX/VRAI (0/1) selon que la chaîne a été
trouvée ou non

On calcule TROUVE sur la plage A1:A5 donc le résultat
est une matrice...

SOMMEPROD fait la somme de la matrice quand le
résultat est 0

Cordialement
Pierre-Yves