Formule inopérante

Bonsoir,

dans un fichier, je rentre les nombres de 1 à 13 dans les cellules B1 à N1.

Dans les cellules A2 à A31 je rentre un texte chiffré (le but est de
faire déchiffrer un texte aux élèves par l'analyse fréquentielle)

dans la cellule B1, je rentre la formule =STXT($A2;B$1;1) et j'étire
vers la droite

certaines cellules sont alors vides

en R1, je rentre la formule =13*R1-NB.VIDE(INDIRECT("$B$2:$N"&(R1+1)))

cette formule est censée calculer le nombre de cellules contenant une lettre

Le problème, c'est qu'elle renvoie 390 (le nombre de cellules de la
plage), et non le nombre total de lettres du message codé. Cette formule
fonctionne sous Excel 2007 avec un fichier créé avec LibreOffice et
enregistré au format xlsx.

Le fichier posant problème est ici :
https://www.dropbox.com/s/i1sctke7vqto4lk/crypto.ods

(version xlsx fonctionnant correctement sous Excel :
https://www.dropbox.com/s/96zdzg5976nc2nw/crypto.xlsx

Pouvez-vous me dire d'où vient le problème, et s'il existe une formule
qui fonctionne correctement (je dispose d'un autre moyen plus simple,
mais j'aime bien savoir pourquoi ça ne fonctionne pas...) ?

Merci.

Bonjour

Loïc Evanno wrote

Pouvez-vous me dire d'où vient le problème, et s'il existe une formule
qui fonctionne correctement (je dispose d'un autre moyen plus simple,
mais j'aime bien savoir pourquoi ça ne fonctionne pas...) ?

Je n'ai plus excel sous la main pour vérifier mais en effet, il s'agit me
semble-t-il d'une différence (incompatibilité) entre les formules des deux
logiciels.

Cela dit, comme tu le fais remarquer il y a plusieurs moyens simples
d'obtenir le résultat:

=NB.SI(B2:N31;"<>"& "")
=SOMMEPROD($B$2:$N$31<>"")
=NB.SI(B2:N31;".")
etc.

Pour la dernière citée il faut avoir coché Outils> Options> Calc> Calcul
Autoriser les caractères génériques dans les formules

Cordialement
Pierre-Yves

Bonsoir,

De : Loïc Evanno [mailto:loic.evanno@laposte.net]
Envoyé : mercredi 12 décembre 2012 16:39
À : users@fr.libreoffice.org
Objet : [fr-users] Formule inopérante

Bonsoir,

dans un fichier, je rentre les nombres de 1 à 13 dans les cellules B1 à
N1.

Dans les cellules A2 à A31 je rentre un texte chiffré (le but est de
faire déchiffrer un texte aux élèves par l'analyse fréquentielle)

dans la cellule B1, je rentre la formule =STXT($A2;B$1;1) et j'étire
vers la droite

certaines cellules sont alors vides

en R1, je rentre la formule =13*R1-NB.VIDE(INDIRECT("$B$2:$N"&(R1+1)))

cette formule est censée calculer le nombre de cellules contenant une
lettre

Le problème, c'est qu'elle renvoie 390 (le nombre de cellules de la
plage), et non le nombre total de lettres du message codé. Cette formule
fonctionne sous Excel 2007 avec un fichier créé avec LibreOffice et
enregistré au format xlsx.

Le fichier posant problème est ici :
https://www.dropbox.com/s/i1sctke7vqto4lk/crypto.ods

(version xlsx fonctionnant correctement sous Excel :
https://www.dropbox.com/s/96zdzg5976nc2nw/crypto.xlsx

Pouvez-vous me dire d'où vient le problème, et s'il existe une formule
qui fonctionne correctement (je dispose d'un autre moyen plus simple,
mais j'aime bien savoir pourquoi ça ne fonctionne pas...) ?

C'est le problème des cellules vides qui ne le sont pas vraiment, tout
dépend du regard que l'on a dessus:
NB.VIDE compte les cellules totalement vides, et les tiennes contiennent une
formule.

Je l'ai fait fonctionner avec en R2 la formule suivante:
= 13*R1-NB.SI(INDIRECT("$B$2:$N"&(R1+1));"")

Dans ce cas, NB.SI compte les cellules avec une chaîne vide (et non
totalement vides).

Bonne soirée,
Michel

Merci pour vos réponses, cela fonctionne parfaitement.

Bonne fin de journée.