Date: prev next · Thread: first prev next last
2014 Archives by date, by thread · List index


Pas  sûre que ça soit arrivé à sa destination finale. Avec mes compléments.

Le 14/11/2014 23:55, Jean-Francois Nifenecker a écrit :
Le 14/11/2014 20:21, Kyle a écrit :

Qu'appelez-vous travailler avec des noms ?
Voici un exemple de formule "à rallonge" :
=CONCATENER(
(SI(ESTVIDE(IT5);"";(CONCATENER(IU5;" x ";IT5;"/";IV5;" (
";(GAUCHE(AO5;30));"... )";))));
(SI(ESTVIDE(IX5);"";(CONCATENER(" + ";IY5;" x ";IX5;"/";IZ5;" (
";(GAUCHE(BC5;30));"... )";))));
(SI(ESTVIDE(JB5);"";(CONCATENER(" + ";JC5;" x ";JB5;"/";JD5;" (
";(GAUCHE(BQ5;30));"... )";))));
(SI(ESTVIDE(JF5);"";(CONCATENER(" + ";JG5;" x ";JF5;"/";JH5;" (
";(GAUCHE(CE5;30));"... )";))));
(SI(ESTVIDE(JJ5);"";(CONCATENER(" + ";JK5;" x ";JJ5;"/";JL5;" (
";(GAUCHE(CS5;30));"... )";))));
(SI(ESTVIDE(JN5);"";(CONCATENER(" + ";JO5;" x ";JN5;"/";JP5;" (
";(GAUCHE(DG5;30));"... )";))));
(SI(ESTVIDE(JR5);"";(CONCATENER(" + ";JS5;" x ";JR5;"/";JT5;" (
";(GAUCHE(DU5;30));"... )";))));
(SI(ESTVIDE(JX5);"";(CONCATENER(" + ";"/";JX5))));
)

-- Découpez cette horreur en sous-formules (dans des cellules
intermédiaires) ; dans votre cas il y aurait 8 cellules intermédiaires.
Ensuite vous cachez les colonnes/lignes qui contiennent ces calculs
intermédiaires.

On peut même le faire sur une autre feuille. Cette façon de découper la formule permet en outre de mieux contrôler sa validité puisque qu'on peut voir plus facilement là où ça pêche.

-- Remplacez la fonction CONCATENER() par l'opérateur & (en plus il
semble qu'il y ait des parenthèses en surnombre dans vos formules)

La première ligne donne ceci :
SI(ESTVIDE(IT5) ; "" ; IU5 & " x " & IT5 & "/" & IV5 & " ( " &
(GAUCHE(AO5;30)) & "...)")

On peut mettre des espaces autour des opérateurs, ce qui améliore la
lisibilité.

On pourrait mettre la troisième partie du SI() dans une cellule séparée
(disons ZZ5), ce qui donnerait :
= SI(ESTVIDE(IT5) ; "" ; ZZ5)
Avec, dans ZZ5
= IU5 & " x " & IT5 & "/" & IV5 & " ( " & (GAUCHE(AO5;30)) & "...)"

Et si on nomme IT5 en "nombre_enfants" et ZZ5 en "age_du_capitaine", on
obtient :
= SI(ESTVIDE(nombre_enfants) ; "" ; age_du_capitaine)

C'est pas plus facile à lire/comprendre ?


-> On peut (doit !) nommer les cellules/plages/colonnes/lignes afin de
rendre les formules lisibles et auto-documentées.

Pour compléter un article, absolument œcuménique, qui explique pourquoi et comment sur les deux suites bureautiques.

http://dutailly.net/tableurs-travailler-avec-des-noms/

Je pense que ça pourrait être une amélioration à apporter à
LibreOffice.

Aussi bon que puisse être l'outil, il faut aussi que *l'utilisateur*
s'attache à rendre son travail *lisible et documenté*.

Et c'est vrai que c'est un vrai effort à faire qui n'est que trop
rarement compris/fait.
En effet, si le travail se limite à écrire des formules aujourd'hui sans
faire en sorte de préparer les évolutions toujours possibles, alors il
suffira d'un rien pour devoir mettre le classeur à la poubelle et tout
recommencer : changement dans l'organisation du service (le créateur
s'en va), modifications réglementaires (ajout d'une condition),
évolutions de la chaîne de traitement (un autre service doit prendre le
relais)...

Surtout que ces fameux retours chariots sont non seulement interprétés différemment mais susceptibles aussi de l'être plus tard.

Il reste une solution si, vraiment, vraiment, on ne peut pas avoir autre chose qu'une longue formule épouvantable, c'est de l'écrire à part dans un éditeur de texte (par exemple Notepad++) et de la copier-coller dans le tableur ensuite. L'un des avantages de cette formule est qu'on peut garder ce fichier sous forme txt à part et y ajouter des commentaires.

Bref, il n'y a strictement aucune raison de recourir au bricolage des retour chariot.

Bon courage,
--
Ysabeau

--
Envoyez un mail à users+unsubscribe@fr.libreoffice.org pour savoir comment vous désinscrire
Les archives de la liste sont disponibles à http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne pourront pas être 
supprimés

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.