Calc 7.2 : des formules identiques qui ne fonctionnent plus dans une feuille

Bonjour tout le monde,

Sur ce classeur sur lequel je relève les maximales à Paris depuis 2016,
soudain, les formules pour l'année en cours ne fonctionnent plus.
Normalement, cela doit compter les nombres de jour par plage de
température de 5 en 5 degrés.

Et en fait, la fonction NB.SI semble poser problème.  Si, par exemple,
j'essaie ceci :

=NB.SI(temp2021;">=20")

j'obtiens une erreur 510, j'ai essayé dans un autre classeur, même
problème (et avec des nombres sans aucune mise en forme et sans utiliser
de plage nommée).

À votre avis, qu'est-ce qui cloche ?

Le fichier à toutes fins utiles :

https://ncloud.zaclys.com/index.php/s/5YCTnwKNtb2Z4rj

NB : accessoirement, j'ai dû changer d'adresse car mon adresse
électronique qui a toujours fonctionné jusque là n'était soudain plus
acceptée...

Merci.

Bonjour

Bonjour tout le monde,

Sur ce classeur sur lequel je relève les maximales à Paris depuis 2016,
soudain, les formules pour l'année en cours ne fonctionnent plus.
Normalement, cela doit compter les nombres de jour par plage de
température de 5 en 5 degrés.

Et en fait, la fonction NB.SI semble poser problème.  Si, par exemple,
j'essaie ceci :

=NB.SI(temp2021;">=20")

Pas de problème chez moi, le calcul se fait sans erreur avec le contexte suivant:

Version: 7.1.4.2 / LibreOffice Community
Build ID: a529a4fab45b75fefc5b6226684193eb000654f6
CPU threads: 4; OS: Linux 4.15; UI render: default; VCL: gtk3
Locale: fr-FR (fr_FR.UTF-8); UI: fr-FR
Calc: threaded

Est-ce que les formules fonctionnent toujours pour les années précédentes ?

Bonjour,

pas de message d'erreur chez moi, mais un calcul erroné (236 jours entre 30 et 34°C en 2021, rien pour les autres temp.).

Je corrige l'erreur en supprimant les plages nommées temp2018 et temp2019 (redondantes) dont l'étendue est limitée à Celsius2019 ou Celsius2020 et qui pointent sur ces feuilles.

Tout est alors correct.

Franck

Version 7.0.6.2 sous Ubuntu 20.04.3

Pas de problème chez moi, le calcul se fait sans erreur avec le
contexte suivant:

Version: 7.1.4.2 / LibreOffice Community
Build ID: a529a4fab45b75fefc5b6226684193eb000654f6
CPU threads: 4; OS: Linux 4.15; UI render: default; VCL: gtk3
Locale: fr-FR (fr_FR.UTF-8); UI: fr-FR
Calc: threaded

ben oui, pas la même version :slight_smile: ça fonctionnait avec celle-là.

Est-ce que les formules fonctionnent toujours pour les années
précédentes ?

Sauf si je les déprotège.

Apparemment ce qui cloche c'est la compréhension des signes : <, > et =

Si je fais par exemple :
=NB.SI(A$1:A$15;7)

J'obtiens un bon résultat, mais c'est très limité comme possibilité.

J'ai essayé d'écrire la formule en passant par l'assistant et en
saisissant le numéro unicode du signe > plutôt que d'appuyer sur la
touche du clavier ad hoc, même résultat.

Pas de problème chez moi, le calcul se fait sans erreur avec le
contexte suivant:

Version: 7.1.4.2 / LibreOffice Community
Build ID: a529a4fab45b75fefc5b6226684193eb000654f6
CPU threads: 4; OS: Linux 4.15; UI render: default; VCL: gtk3
Locale: fr-FR (fr_FR.UTF-8); UI: fr-FR
Calc: threaded

ben oui, pas la même version :slight_smile: ça fonctionnait avec celle-là.

J'ai continué à investiguer avec W10 et les versions :

7.1.2: OK - l'observation de Franck sur sa version 7.0.6 est celle que je fais sur la 7.1 sous Ubuntu ou W10, le fichier s'ouvre avec les valeurs qui sont je suppose celles du dernier enregistrement, Ctrl+Maj+F9 force le recalcul et les valeurs sont correctes sans avoir à supprimer les 3 plages.

7.2.0: KO - je n'ai pas de valeur d’erreur mais le calcul donne 0 sur toutes les feuilles sauf la cellule F3 qui compte la totalité des journées ! Supprimer les 3 plages dont l'étendue est anormale ne change rien.

J'ai créé un nouveau classeur vierge pour vérifier la fonction NB.SI sur cette version 7.2.0 sous W10 et ça fonctionne bien...

J'ai continué à investiguer avec W10 et les versions :

7.1.2: OK - l'observation de Franck sur sa version 7.0.6 est celle que
je fais sur la 7.1 sous Ubuntu ou W10, le fichier s'ouvre avec les
valeurs qui sont je suppose celles du dernier enregistrement,
Ctrl+Maj+F9 force le recalcul et les valeurs sont correctes sans avoir
à supprimer les 3 plages.

Et je n'avais aucun problème jusqu'à la version 7.2.0.4 et n'en ai ni
avec Gnumeric ni avec Calligra Sheets pour les calculs (par contre ça me
bousille les mises en forme conditionnelles, mais ceci est une autre
histoire). Notons qu'OnlyOffice affiche tout normalement les calculs et
tout et tout mais me dit "opérateur incorrect" si j'essaie de faire une
formule de type : "NB.SI(plage;>7)".

Ce qui est curieux c'est que l'ouverture avec Gnumeric et
l'enregistrement (qui m'a donc bousillé les mises en forme
conditionnelles), remet tout d'aplomb MAIS il n'en reste pas moins que
la formule nb.si chez moi, par ailleurs, ne supporte pas les opérateurs
mathématiques que sont <> et =.

7.2.0: KO - je n'ai pas de valeur d’erreur mais le calcul donne 0 sur
toutes les feuilles sauf la cellule F3 qui compte la totalité des
journées ! Supprimer les 3 plages dont l'étendue est anormale ne
change rien.

J'ai créé un nouveau classeur vierge pour vérifier la fonction NB.SI
sur cette version 7.2.0 sous W10 et ça fonctionne bien...

Ce serait propre à Linux ?

... suite des investigations:

Sur la 7.2.0, si je change le formatage des cellules de la plage "temp2021", initialement :

Standard"°C"

par:

# ##0"°C" (ou tout autre formatage de nombre pour la partie qui précède "°C")

ça marche ! Est-ce un bug ou bien cette nouvelle version est-elle moins permissive ? je n'ai jamais compris ce que peut bien signifier un format de nombre "Standard" alors peut-être que la nouvelle version ne le sait pas non plus ;-))

Bon à savoir (et je suis au même pour pour le format "Standard").

Mais est-ce que tu as essayé d'entrer une formule de ce type (avec ou
sans l’assistant de fonction) sur un nouveau classeur avec la version 7.2 :
=NB.SI(A$1:A$9;<50)

avec un des opérateurs <, > ou = ou <= et >=

Là ça coince.

Cette syntaxe n'est pas correcte, avec 7.1 ou 7.2, NB.SI fonctionne comme indiqué sur la doc, le critère peut être donné directement dans la fonction si c'est un nombre, sinon pour un critère sous forme de formule ce doit être du texte, donc au choix :

50            qui signifie =50

"<50"

"<"&50

"<"&A1    si A1 contient 50

A1            si A1 contient <50 (sans guillemets car considéré comme du texte dans la cellule)

Merci. Bon, je regarde une sauvegarde, et je vois que les formules sont
écrites avec ces guillemets et que ça fonctionne (d'ailleurs sur la
version d'origine aussi, bref). Donc je ne saurai pas d'où ça vient
hormis cette histoire de format de nombre, qui, heureusement, est un
style donc facile à modifier.

Réglé en tout cas.