[Résolu] Compter les mots d'un fichier Calc

Discussions à propos du tableur Calc.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est uniquement dédiée au tableur Calc. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
Houlala
Fraîchement OOthentifié
Messages : 8
Inscription : 06 juin 2007 15:31

[Résolu] Compter les mots d'un fichier Calc

Message par Houlala »

Bonjour,

Comment peut-on compter les mots d'un fichier Calc ?

Merci !
Dernière modification par Houlala le 07 juin 2007 05:38, modifié 1 fois.
2.2.0 sous Windows XP SP2
Avatar de l’utilisateur
vinc-mai
PassiOOnné
PassiOOnné
Messages : 540
Inscription : 22 déc. 2005 14:13
Localisation : Rhône-Alpes

Message par vinc-mai »

Qu'appelez-vous mot?



Dans fichier->propriétés->statistique, le nombre de cellules est affichée.
Par contre, pour un nombre de mots, je voie pas.
A moins de l'enregistrer au format texte (csv par exemple) puis d'utiliser un éditeur de texte pour compter. Par contre, il ne devrait pas faire la différence entre les mots et nombres.
(Ooo 2.3 sur windows XP)
OOo 2.3 sur Ubuntu 7.10
Houlala
Fraîchement OOthentifié
Messages : 8
Inscription : 06 juin 2007 15:31

Message par Houlala »

Bonjour et merci,

Par mot j'entendais bien un assemblage de lettres, il peut y en avoir plusieurs par cellules et il peut y avoir des cellules vides.

La technique de sauver en texte CSV me convient bien. J'ai aussi essayé un utilitaire "anycount" prévu pour ça, mais il plante à chaque coup avec Calc.

Si quelqu'un connait un utilitaire semblable ou une macro qui fonctionne avec Calc, ça m'intéresse.
2.2.0 sous Windows XP SP2
Jeff
GourOOu
GourOOu
Messages : 9629
Inscription : 18 sept. 2006 09:40
Localisation : France

Message par Jeff »

Bonsoir Houlala,

Question trés technique, et un peu vague...

Dans ce Post-it : Quelques exemples de fonctions dans Calc MichelXld donne une formule qui compte le nombre de "a" dans la cellule A1.
On pourrait l'adapter pour compter le nombre d'espace :

Code : Tout sélectionner

=NBCAR(A1)-NBCAR(SUBSTITUE(A1;" ";""))+1
J'ai rajouté +1 car logiquement, tu as un mot de plus que les espaces.
Si tu as des espaces accidentels, il faut utiliser auparavant une fonction SUPPRESPACE.

Maintenant, pour compter sur une feuille complète :?

A + :wink:
Jeff
GourOOu
GourOOu
Messages : 9629
Inscription : 18 sept. 2006 09:40
Localisation : France

Message par Jeff »

Jeff a écrit :Maintenant, pour compter sur une feuille complète
Tu peux apparemment passer par une fonction de matrice ; par exemple, pour compter les espaces + 1 (donc les mots) de la cellule A1, A2 et A3 :

Code : Tout sélectionner

=SOMME(NBCAR(A1:A3)-NBCAR(SUBSTITUE(A1:A3;" ";""))+1)
à valider matriciellement (à la place de taper Entrée à la fin de la formule, valide par Ctrl+Maj+Entrée), à ce moment là, Calc rajoute des accolades autour de ta formule.

A +
Houlala
Fraîchement OOthentifié
Messages : 8
Inscription : 06 juin 2007 15:31

Message par Houlala »

Génial, merci Jeff, ça marche parfaitement !!!
2.2.0 sous Windows XP SP2
Jeff
GourOOu
GourOOu
Messages : 9629
Inscription : 18 sept. 2006 09:40
Localisation : France

Message par Jeff »

Content que cela te convienne :D

Pour rajouter la balise [Résolu] dans ton titre, c'est par ici :arrow: http://user.services.openoffice.org/fr/ ... html#18488

A + :wink:
Jeff
GourOOu
GourOOu
Messages : 9629
Inscription : 18 sept. 2006 09:40
Localisation : France

Message par Jeff »

Ah, j'oubliais : dans le Tutoriel sur les fonctions de matrice, mes recherches ont abouties au fait qu'une fonction matricielle ne peut agir que sur une plage de 128x128 cellules ; je ne sais pas si cette limite est toujours d'actualité...

A +
Dernière modification par Jeff le 13 févr. 2010 13:00, modifié 1 fois.
Houlala
Fraîchement OOthentifié
Messages : 8
Inscription : 06 juin 2007 15:31

Message par Houlala »

J'ai essayé sur une colonne de 3000 cellules et le compte était bon. Ok, je vais mettre [résolu], merci encore et bonne journée !
2.2.0 sous Windows XP SP2
Jeff
GourOOu
GourOOu
Messages : 9629
Inscription : 18 sept. 2006 09:40
Localisation : France

Message par Jeff »

Je ne pense pas que ce soit la largeur ou la hauteur de ta plage qui compte, mais bien le nombre de cellules, soit 128x128= 16384 cellules.

Merci pour la balise qui facilitera les futures recherches :super:
Vandeput
Membre enthOOusiaste
Membre enthOOusiaste
Messages : 409
Inscription : 12 févr. 2007 14:33
Localisation : Bruxelles

Message par Vandeput »

Bonjour,

Je m'y prends probablement fort mal, mais la formule de Jeff me renvoie une valeur erronée lorsqu'il y a des cellules vides dans la plage de comptage (voir pièce jointe).

Il me semble que le +1 dans la formule compte également les cellules vides pour une unité.

Je propose une autre formule qui renvoie le bon résultat, mais qui reste à vérifier !

http://user.services.openoffice.org/fr/ ... 084250.age

PS 1 : j'ai à nouveau une extension bizarre, peut-être faudra-t-il la remplacer par .ods
PS 2 : j'ai décalé le tableau d'une ligne et d'une colonne en oubliant d'adapter les formules en texte.
Il faut donc y remplacer A1:C8 par B2:D9
andré
2.2 sous Windows XP
Jeff
GourOOu
GourOOu
Messages : 9629
Inscription : 18 sept. 2006 09:40
Localisation : France

Message par Jeff »

Salut André,
Vandeput a écrit :la formule de Jeff me renvoie une valeur erronée lorsqu'il y a des cellules vides dans la plage
+1 :super: j'ai pas pensé aux cellules vides
Vandeput a écrit :PS 1 : j'ai à nouveau une extension bizarre, peut-être faudra-t-il la remplacer par .ods
Tu devrai contacter en MP Bidouille ou C-Stephan pour connaitre l'origine de ce problème.
Pour les utilisateur de Firefox, faire simplement Ouvrir avec puis sélectionner soffice.exe (généralement dans ProgramFiles->OOo2.2->Program), Calc s'ouvre alors automatiquement.

Encore une modification simpose, s'il n'y a qu'un mot, un espace est compté, comment penses-tu que l'on pourrait faire ?

A + :wink:
Vandeput
Membre enthOOusiaste
Membre enthOOusiaste
Messages : 409
Inscription : 12 févr. 2007 14:33
Localisation : Bruxelles

Message par Vandeput »

Bonsoir Jeff,

Il me semble que la formule que j'ai proposée sous ma pièce jointe renvoie le bon résultat.
Pour moi "le compte est bon".

A moins que tu aies trouvé autre chose qui ne fonctionne pas.
andré
2.2 sous Windows XP
Jeff
GourOOu
GourOOu
Messages : 9629
Inscription : 18 sept. 2006 09:40
Localisation : France

Message par Jeff »

C'est rien, c'est les yeux... :marto:
Vandeput
Membre enthOOusiaste
Membre enthOOusiaste
Messages : 409
Inscription : 12 févr. 2007 14:33
Localisation : Bruxelles

Message par Vandeput »

Bonjour,

C'est toute la différence entre "voir" et "regarder".

Il reste néanmoins deux problèmes :
- un espace devant ou derrière une chaîne de caractères
- un espace dans une cellule sans texte
Dans les deux cas, la formule compte un mot en plus.

Pour le premier problème j'ai trouvé une solution :
=SOMME(NBCAR(SUPPRESPACE(B2:D9))-NBCAR(SUBSTITUE(B2:D9;" ";"")))+NBVAL(B2:D9)

Pour le second, pas (encore).
andré
2.2 sous Windows XP
Vandeput
Membre enthOOusiaste
Membre enthOOusiaste
Messages : 409
Inscription : 12 févr. 2007 14:33
Localisation : Bruxelles

Message par Vandeput »

Et voilà :

=SOMME(NBCAR(SUPPRESPACE(B2:D9))-NBCAR(SUBSTITUE(B2:D9;" ";"")))+NBVAL(B2:D9)-NB.SI(B2:D9;" ")
formule matricielle.

Le dernier point non résolu : plusieurs espaces sans chaîne de caractère dans une cellule.
andré
2.2 sous Windows XP
Vandeput
Membre enthOOusiaste
Membre enthOOusiaste
Messages : 409
Inscription : 12 févr. 2007 14:33
Localisation : Bruxelles

Message par Vandeput »

Re,

=SOMME(NBCAR(SUPPRESPACE(B2:D9))-NBCAR(SUBSTITUE(B2:D9;" ";""))+(NBCAR(SUBSTITUE(B2:D9;" ";""))>0))
formule matricielle (à valider par Ctrl+Maj+Entrée)

Dernier problème résolu, ... je l'espère.

Edition :
Une chaine de caractères provenant d'un format est comptabilisé suivant sa valeur et non suivant son format.
Exemple : =AUJOURDHUI() au Format personnalisé JJJ JJ MMM AA sera comptabilisé pour une chaine,
par contre : =TEXTE(AUJOURDHUI;"JJJ JJ MMM AA") sera comptabilisé pour quatre chaines.
andré
2.2 sous Windows XP
Vandeput
Membre enthOOusiaste
Membre enthOOusiaste
Messages : 409
Inscription : 12 févr. 2007 14:33
Localisation : Bruxelles

Message par Vandeput »

Re,

Dernier petit correctif (je l'espère).

Pour ne pas devoir valider en matricielle, remplacer dans la formule proposée sous mon denier post, SOMME par SOMMEPROD.
andré
2.2 sous Windows XP