[CALC] État des résultats - calcul de dates (entêtes de colonnes)

Bonjour,

J’essaie de créer un État des Résultats. Je veux pouvoir interroger mes données selon les dates que je détermine. C’est pourquoi je veux programmer des calculs de dates pour générer des tableaux annuels selon les intervales de dates désirés.

En A2 j’indique la date de clôture de l’état des résultats. Ensuite je veux générer 12 blocs de colonnes mensuels avec les budgets et résultats pour chaque catégorie de revenu ou dépense.

Je n’arrive pas à maîtriser les fonctions de dates. Je n’arrive pas à comprendre et bien manipuler les dates. Initialement je travaillais seulement à partir des mois, mais vue la discussion sur le point de référence initial des dates j’ai privilégié la date complète de clôture de l’état des résultats comme date de référence.

Je veux pouvoir afficher automatiquement: le nom du mois en haut de colonne; les chiffres correspondant à l’intervalle entre le premier et le dernier jour de ce mois, à même le tableau continu des revenus ou dépenses.

Pour le premier aspect - rubrique du mois, je me dis qu’en prenant la date et en appliquant =MAJUSCULE(TEXTE($B$2;mmmm)) je ne devrais avoir que le nom du mois, eh bien il me remet DD et AAAA par défaut! J’arrive à l’enlever manuellement et ça marche pour afficher le mois. Maintenant je me demande comment programmer l’affichage du mois précédant? Mystère et boule de gomme.
=MAJUSCULE(TEXTE(A2;“MMMM”-1))
=MAJUSCULE(TEXTE(A2-1;“MMMM”))
Ensuite je me suis amusé avec le mois seulement pour essayer de l’incrémenter… pas capable!!!
=MOIS($A$2-11)
=MOIS($A$2)-11
=MOIS($A$2)
=NB.MOIS(A2)
=MOIS.DECALER(A2;-11)
=MOIS.DECALER(“A2”;-11)
=MOIS.DECALER(“A2”;-11)
=DATEVAL(A2)
=DATEVAL(“A2”)

Je me sens incompétentissime. C’est difficile à faire ou c’est moi qui ai un pois dans la tête?

Une fois l’affichage de la colonne assuré, il faut que je conserve une trace des dates pour calculer l’intervalle entre le début et la fin du mois. Cases invisibles j’imagine.

Ensuite ça me prend une fonction logique du type SI(DATE ENTRE (=>MIN(1er du mois) et <MAX((1er du mois suivant) alors faire SOMME(des valeurs Crédit) - SOMME (des valeurs Débit) DANS LA FEUILLE XYZ pour recueuillir des bonnes données financières dans le tableur approprié.

Enfin, il me faut un affichage des 12 mois avec calcul des montants pertinents selon la date de clôture de l’état des résultats.

Voilà l’état de ma réflexion. Merci de votre aide précieuse.

Bonjour Seriouslaughbore,

Si je vous comprends bien vous avez une pseudo date en B2, vérifiez qu’il n’y a pas d’apostrophe en premier caractère de B2.
Une fois que B2 contient une vraie date cohérente (pas de 31/02/1999, ou 28/14/18…), votre formule “=MAJUSCULE(TEXTE($B$2;mmmm))” doit bien afficher le mois de B2 en majuscule, il faut toutefois encadrer le format de guillemets, ce qui donne =MAJUSCULE(TEXTE($B$2;"mmmm")).

Comment programmer l’affichage du mois précédant? Mystère et boule de gomme. =MAJUSCULE(TEXTE(A2;“MMMM”-1)), essayez avec

=MAJUSCULE(TEXTE(DATE(ANNEE(A2);MOIS(A2)-1;JOUR(A2));"MMMM")) 

ou

=MAJUSCULE(TEXTE(FIN.MOIS(A2;-1);"mmmm"))

Pour faciliter nos contributions et diagnostic sur les éventuelles possibilités partagez un extrait représentatif de votre fichier

Dans le fichier joint, le format des cellules en ligne 2 affichant le nom des mois, issues des dates qui serviront pour le calcul, est :[NatNum12 capitalize]MMMM

Et pour additionner les valeurs en fonction des dates utilisez:

=SOMME.SI.ENS($B:$B;$A:$A;">="&C$2;$A:$A;"<"&FIN.MOIS(C$2;0)) 

Seriouslaughbore.ods

:slight_smile:

Bonjour Seriouslaughbore,

En C2 la formule INDIRECT(ADRESSE(COLONNE();1);1) est constituée de

ADRESSE(COLONNE();1)

qui renvoie A3 parce que placée en colonne C càd la troisième colonne et comme ce paramètre est le

premier de la fonction, il génère le numéro de ligne de l’adresse, il est suivi de 1 qui est placé en

second paramètre de la fonction et génère la lettre de la colonne dans l’adresse.

Cette adresse est utilisée par la fonction INDIRECT() pour renvoyer le contenu de A3, comme le format de la celulle C2 est :

[NatNum12 capitalize]MMMM

la date renvoyée est convertie en nom du mois avec une initiale en majuscule

:wink:

@njhub excellente réponse, pertinente, rapide, utile. Un grand merci!

PROBLÈME 1:
– Pour afficher le texte du mois en majuscule, vous m’avez proposé 2 options; la première adoptant ma logique qui était de soustraire un mois à une date donnée (merci!). Dans sa mise en place cette approche a une faiblesse. Je constate que si ma date de référence est le 31 décembre, la formule proposée affiche décembre. J’en déduis qu’il n’enlève pas 1 mois, mais 30 jours, donc ça m’amène au 1er décembre et l’entête de colonne affiche toujours “décembre”.
– La 2e option donne le résultat souhaité =MAJUSCULE(TEXTE(FIN.MOIS($A$2;-1);“mmmm”)).
– Dans votre document généré, vous n’avez pas référé à un champ de date de clôture d’exercice, mais à ceci: [=INDIRECT(ADRESSE(COLONNE();1);1)] et ça donne janvier! Miracle :wink: @NJHUB, pourriez-vous m’expliquer le fonctionnement de cette formule?