Chaînes de caractères dans NB.SI et SOMME.SI

Bonjour,

Je cherche l’utilisation correcte des chaînes de caractères dans NB.SI et SOMME.SI

  • : remplace t-il 0 ou plusieurs caractères ?
    ? : 0 ou 1 caractères ?

exemple : NB.SI(A1:A8;“texte”)

J’ai fait plusieurs essais et sur certaines données, l’utilisation “texte” fonctionne, et d’autres fois pas du tout. Je ne comprends plus rien.

Merci pour votre aide.

Bien cordialement,

Bonjour

Il faut savoir que des options, figurant dans OutilsOptionsCalcCalcul, influent sur le résultat et la syntaxe :

Avec Autoriser les caractères génériques cochée :

=NB.SI($A$1:$A$8; "*texte*") compte toutes les occurrences de “texte” figurant dans la plage (par ex. Un texte écrit est compté)

Avec Autoriser les expressions régulières cochée :

=NB.SI($A$1:$A$8; ".*texte.*") compte toutes les occurrences de “texte” figurant dans la plage

Noter le point devant * qui fait la différence.

Par ailleurs, quelle que soit l’option choisie, la formule =NB.SI($A$1:$A$8; "texte") ne compte que les cellules comprenant le mot exact.

nbsi.ods

La page d’aide décrit ces différentes possiblités (et d’autres…), ainsi qu’une explication sur les expressions régulières.

Cordialement

Merci. J’ai bien pris note de votre réponse mais problème non résolu… bizarre (voir fichier en lien ci-dessus)

Bonjour
Ceci est mon premier post dans cet espace. Je suis confronté à un problème avec nb.si qui compte toutes les occurences d’un mot dans une plage. J’ai essayé aussi les formules évoquées ci-dessus sans succès.
J’ai essayé aussi des choses comme :
=SOMME(NBCAR($AB3)-NBCAR(SUBSTITUE($AB3;C$2;"")))/NBCAR(C$2) où $C2 contient le mot cherché et $AB3 est la traduction par macro d’un nombre en toute lettres. voir ici pour comprendre :
G. QUELS SONT LES MOTS NOMBRES NÉCESSAIRES À L’ÉCRITURE DE GRANDS NOMBRES ENTIERS ?
Il s’agit de compter les “mots nombres” utiliser pour écrire en lettres des nombres.

=SOMME(NBCAR($AB3)-NBCAR(SUBSTITUE($AB3;C$2;"")))/NBCAR(C$2)
Bref sous Excel je m’en sors avec la macro suivante:

Function compte_occurence_mot(mot_que_l_on_recherche As String, LaCellule As Range) As Integer

Dim cellule As Range
Dim t As Integer
Dim longueur_du_mot_que_l_on_cherche As Integer
longueur_du_mot_que_l_on_cherche = Len(mot_que_l_on_recherche)
'On scanne toutes les cellules de la plage utilis? de la feuille
For Each cellule In LaCellule
    'On scanne toutes les lettres de la cellule
    If Not (IsError(cellule.Value)) Then
        For t = 1 To Len(cellule.Value)
            'Si on trouve le mot recherch?, on incr?mente l'occurence
            If Mid(cellule.Value, t, longueur_du_mot_que_l_on_cherche) = mot_que_l_on_recherche Then
                compte_occurence_mot = compte_occurence_mot + 1
            End If
    Next t
        End If
Next cellule

End Function

J’ai essayé de traduire en basic LibreOffice sans succès…. Trop compliqué pour moi!

Merci de m’aider à traduire cette macro.
pascal
J’ai bien pris note de la réponse mais problème non résolu…
Ajout du 21/06
Ci-joint un fichier qui montre le problème quels_mots_nombres_utiliser_2017.ods

@scalpa98 merci de créer ta propre question.