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


Le 27/12/2013 00:01, Guy GOURLAIN a écrit :

Je n'ai pas prêté attention et n'ai donc pas percuté que l'exemple relevé était dans Base (que je ne maîtrise pas du tout). j'ai essayé de calculer les âges dans calc en insérant la fonction Dates & Heures > Années J'ai inséré la date initiale, la date de fin et le choix du mode se réduit à 0 pour le nombre d'années dans l'intervalle (1 pour les années de calendrier)
Je n'ai pas de résultat sinon "0"
Autrement je n'ai pas besoin d'un résultat deux jours près.
A +
Bonjour,

Ok, ta question portait donc sur Calc.

Tu as plusieurs façon de procéder en réalité ; tu peux t'en remettre aux fonctions présentes dans le logiciel ou tu peux faire les calculs toi-même, à partir de ce que tu connais.

Les fonctions présentes dans le logiciel d'abord.

Dans une autre réponse, j'ai vu que Laurent Balland-Poirier t'orientait vers "Années" qui me semble effectivement l'une des voies possibles.

Tu as aussi une fonction DATEDIF qui a un objet proche ce que j'ai décrit précédemment pour SQL (attention, celle-là n'a qu'un seul "F" alors que celle de SQL en a deux) mais qui en est quand-même pas mal éloignée.

La structure de DATEDIF est la suivante : "=DATEDIF(x;y; z)" (sans les guillemets), avec les caractéristiques suivantes : - x ; c'est la date de début de l'intervalle (autrement dit, la date la plus ancienne) ; - y ; c'est la date de fin de l'intervalle (donc, la date la plus récente, évidemment) ; attention, si tu intervertis les deux date, la fonction te renverras un message d'erreur ; - z ; c'est un argument de la fonction que ses concepteurs appellent l'intervalle ; il va te servir à déterminer ce que le résultat va représenter ; tu as le choix entre "y", "m", "d", "ym", "yd" et "md" (AVEC les guillemets) ; très classiquement, "y" va te donner le résultat en années entières, "m" en mois entiers et "d" en jours ; "ym" te donnera le nombre de mois entiers, après avoir ôté le nombre d'années entières (grosso modo, si tes dates sont 25/11/2010 et 27/12/2013, "ym" te donnera un résultat de 1 puisque l'intervalle représente 3 ans, 1 mois et 2 jours ; "yd" te donnera le nombre de jours écoulé au-delà de l'année entière (dans l'exemple précédent, ça te donnera 32, puisque la différence fait 3 ans et 32 jours) ; quant à "md", il te donnera le nombre de jours écoulé, au-delà du nombre de mois entiers, ce qui, dans notre exemple précédent, donnerait 2.

Donc pour obtenir ton résultat dans deux colonnes différentes, dans l'une tu mets ta formule avec "y" en argument et dans une seconde, la même formule avec "ym" en argument ; si tu veux avoir un truc joli, dans une seule cellule tu fais une concaténation du genre =concatener(datedif(a1;b1;"y");" ans ";"datedif(a1;b1;"ym");" mois") ; tu peux encore raffiner le truc en mettant des "si" si tu ne veux pas que "ans" apparaisse si le résultat de datedif(a1;b1;"y") est égal à 0 ou que le "s" final n'apparaisse pas si le résultat est égal à 1 mais là, c'est déjà du plus classique.

Il y a aussi moyen d'aboutir à ce genre de résultat avec des calculs relativement simples mais là je n'ai plus le temps, un rdv m'attend...

Bon courage.

--
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.