Poser votre question
0

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

posée 2019-03-26 21:39:21 +0200

Image Gravatar de CharlotteNadadora

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,

éditer requalifier signaler fermer fusionner supprimer

2Réponses

0

répondue 2019-06-11 16:19:18 +0200

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

éditer signaler supprimer permalien plus
0

répondue 2019-03-27 08:07:49 +0200

Image Gravatar de pierre-yves samyn

updated 2019-03-27 08:11:27 +0200

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

éditer signaler supprimer permalien plus
S'identifier/S'inscrire pour répondre

Outils de question

1 suiveurs

Stats

Posée: 2019-03-26 21:39:21 +0200

Consultée: 34 fois

Mise à jour: Jun 11