Problème de formule pour calculer le nombre de cellule contenant un mot

Résolu/Fermé
Kazimix Messages postés 8 Date d'inscription lundi 25 septembre 2006 Statut Membre Dernière intervention 1 juin 2020 - 21 mai 2020 à 15:02
Kazimix Messages postés 8 Date d'inscription lundi 25 septembre 2006 Statut Membre Dernière intervention 1 juin 2020 - 30 mai 2020 à 16:24
Bonjour,
Pour commencer un grand merci aux membres de la communauté qui voudront bien m'éclairer sur ce problème de formule dans calc que je n'arrive pas à résoudre, étant plus ou moins - moins que plus d'ailleurs - novice en la matière.
Je recherche sur un ensemble de cellules (B2:B32), le nombre de celles qui contiennent le mot MATIN, APRES-MIDI, REPOS, FERIE....
J'utilise la formule : =NB.SI(B2:B32;"MATIN") pour "MATIN". Le résultat est tronqué lorsque la cellule contient "MATIN FERIE" et non "MATIN" seul.
Je vous joins mon tableur : https://www.cjoint.com/c/JEvmXMarpWP
Merci à nouveau pour votre participation.
Kazimix

Configuration: Windows / Chrome 81.0.4044.138

4 réponses

Pierr10 Messages postés 9142 Date d'inscription mardi 13 février 2018 Statut Contributeur Dernière intervention 2 février 2023 4 384
Modifié le 21 mai 2020 à 16:46
Bonjour,

Raymond Pentier (hello !) signale à juste titre que la formule en B39 est fausse.

Pour utiliser le caractère générique *, va dans Outils > Options > LibreOffice Calc > Calcul


Tu pourras utiliser des formules du type =NB.SI(B2:B32;"*MATIN*")
(Le problème est résolu avec ces formules).
1
Kazimix Messages postés 8 Date d'inscription lundi 25 septembre 2006 Statut Membre Dernière intervention 1 juin 2020
30 mai 2020 à 07:41
Bonjour Pierr10,
Je reviens sur ce sujet résolu avec ce même exemple (https://www.cjoint.com/c/JEEfFvz8TpP.
Les formules ne fonctionnent pas sous OO 4.1.7 (dernière version) avec l'option "autoriser les caractères génériques dans les formules" cochée


alors qu'avec Libre Office 6.4.4.2 (dernière version) ça fonctionne très bien.

Juste pour savoir s'il y a une explication puisque je me satisfait de Libre Office.
Encore merci
Cordialement
0
Pierr10 Messages postés 9142 Date d'inscription mardi 13 février 2018 Statut Contributeur Dernière intervention 2 février 2023 4 384 > Kazimix Messages postés 8 Date d'inscription lundi 25 septembre 2006 Statut Membre Dernière intervention 1 juin 2020
30 mai 2020 à 11:19
Bonjour,

C'est un peu plus compliqué en effet.
Il faut utiliser comme caractère générique .*
= NB.SI(B2:B32;".*MATIN.*")

Voyez ceci : https://www.01net.com/astuces/openoffice-calc-utilisez-les-jokers-dans-les-formules-de-calcul-556498.html
0
Kazimix Messages postés 8 Date d'inscription lundi 25 septembre 2006 Statut Membre Dernière intervention 1 juin 2020 > Pierr10 Messages postés 9142 Date d'inscription mardi 13 février 2018 Statut Contributeur Dernière intervention 2 février 2023
30 mai 2020 à 16:24
Merci Pierr10 pour cette explication précise qui va "peut-être" me permettre de revenir vers Open Office puisque la formule ainsi modifiée est conforme au résultat attendue.
Et apparemment la formule ainsi modifiée fonctionne également sous Libre Office en "autorisant les expressions régulières dans les formules" dans les options Calc.
Bon week end et encore merci à toute la communauté
0
Raymond PENTIER Messages postés 56992 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 1 février 2023 17 171
21 mai 2020 à 18:34
Parfait !

Et moi je remercie Pierr10, car je n'avais jamais fait attention à cette option de Calc, et ne comprenais pas pourquoi mes multiples écritures de formule ne marchaient pas davantage que celle de Kazimix.

Amitiés à tous deux.
1
Raymond PENTIER Messages postés 56992 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 1 février 2023 17 171
21 mai 2020 à 15:43
Bonjour Kazimix.

Tes résultats attendus sont faux : Le total des cellules C35:C40 donne 35, alors que tu n'as que 31 jours (nombre de cellules de A2 à A32) !
Ta formule en B39 est fausse, car identique à celle en B35 !
La formule à saisir dans les cellules B35 à B40 est
=NB.SI(B$2:B$32;A:A), cellules dont le cumul donne bien 31.
0
Kazimix Messages postés 8 Date d'inscription lundi 25 septembre 2006 Statut Membre Dernière intervention 1 juin 2020
21 mai 2020 à 15:53
Bonjour Raymond
Merci pour ta réponse. Je ne cherche pas à obtenir 31 dans la somme des cellules C35:C40 puisque les critères font que des résultats sont cumulés dans l'une ou l'autre formule.
Mon problème correspond à la formulation de la fonction en colonne B35 à B40 pour obtenir le résultat que j'ai mis en C35 à C40. Je ne sais pas si je me suis bien exprimé.
Exemple : en ligne 35 je cherche à trouver le nombre de cellule qui contient le mot "matin" (soit 10 et non 9 avec la fonction que j'ai mis en B35). J'ai essayé avec "*matin*" et également en majuscule mais rien n'y change
0
Kazimix Messages postés 8 Date d'inscription lundi 25 septembre 2006 Statut Membre Dernière intervention 1 juin 2020
21 mai 2020 à 16:49
Bonjour Pierr10
Merci pour cette réponse qui règle mon problème et merci Raymond Pentier pour avoir décelé la coquille.
Utilisant un Open Office obsolète (4.1.6) pour une raison de compatibilité avec un autre programme, je ne comprenais pas pourquoi la formule ne fonctionnait pas après la modification des options. J'ai donc lancé le tableur dans un Libre office à jour et bingo.
Merci pour votre aide précieuse et ultra rapide, et de plus un jour férié ;-)
Je suis très reconnaissant.
Je marque le sujet comme résolu
0