produit constatee d avance

0

Bonjour,
j a i besoin d 'aide sur des formules , je facture une prestation annuel ou semestriel .... avec un date de début et date de fin  avec un montant Hors taxe.
je souhaite avoir une ventilation mois par mois avec le montant au prorata temporis en prenant compte bien sur de la date de fin
j ai fait cette formule mais cela ne va pas =SI($N$1<J4;M4*$N$2;"faux")

date de debut 01/01/2020
date de fin 31/12/2020
NOMBRE DE JOUR  : 364

Colonne
montant pour janvier 2020:...
montant pour fevrier2020:...
montant pour mars 2020:...
... montant le 01/01/2021 : rien

Merci beaucoup

exemple en pj
    Posté le 20 février 2020, 13:10
    par lback
    Répondre
    0

    Bonjour,

    Voici ce que j'ai fait :

    https://www.cjoint.com/c/JBupi2N6o3T

    je suis parti du principe que l'avoir était répartie sur le prix par jour.cf formule au pire tu refais cette formule en enlevant la cellule avoir.


    Dis moi si cela correspond à tes attentes.

    Cordialement,

    Tom

    Tom Posté le 20 février 2020, 16:10
    par Tom
    0

    Bonjour,

    Je pense que la solution est bien plus complexe que ça. Si le montant doit être au prorata temporis, il faut découper le mois.

    Dans l'exemple du client G, la période de facturation est du 7 janvier au 6 juillet, ce qui veut dire qu'il faut compter 24 jours en janvier, les mois de février, mars, avril, mai, juin complets, et les 6 jours de juillet.

    Pour chaque colonne on doit vérifier 5 choses.

    1. Si on est hors de la période parce qu'elle n'a pas encore commencé
    2. Si on est dans le premier mois de la période (on compte alors le nombre de jours entre la date de début et le dernier jour du mois)
    3. Si on est dans la période, le mois est compté complet
    4. Si on est le dernier mois de la période (on compte alors le nombre de jours entre le premier du mois et la date de fin
    5. Si on est hors de la période parce que c'est terminé.

    Pour reprendre l'exemple du client G

    Décembre 2019 est avant la période (donc zéro)
    Janvier 2020 est le premier mois (on compte 24 jours (du 7 au 31 janvier)
    Février a 29 jours, mars 31, avril 30, mai 31, juin 30
    Et on termine avec les 6 jours du mois de juillet

    En J3, je me retrouve avec la formule suivante pour faire le test

    =SI(FIN.MOIS(J$1;0)<$E3;"Pas commencé";
    SI(DATE(ANNEE(J$1);MOIS(J$1);1)>$F3;"Terminé";
    SI(ET(ANNEE(J$1)=ANNEE($E3);MOIS(J$1)=MOIS($E3));"Premier mois";
    SI(ET(ANNEE(J$1)=ANNEE($F3);MOIS(J$1)=MOIS($F3));"Dernier mois";"Mois entier"))))
    Pour le moment, c'est juste pour tester la première étape, c'es-à-dire les conditions.

    Pour tester qu'une date quelconque est dans le même mois qu'une autre date quelconque, je regarde que l'année et le mois des deux dates soient identiques

    ET(ANNEE(J$1)=ANNEE($E3);MOIS(J$1)=MOIS($E3))

    Pour prendre le dernier jour du mois, j'utilise la fonction FIN.MOIS en décalant de zéro mois

    FIN.MOIS(J$1;0)

    Pour prendre le premier du mois, j'utilise la fonction DATE en mettant la même année, le même mois, mais en mettant 1 pour le jour

    DATE(ANNEE(J$1);MOIS(J$1);1)

    Maintenant, on va remplacer les textes par les vrais calculs, c'est ça qui nous importe surtout.

    "Pas commencé" et "Terminé" sont les plus simples, on remplace le texte par un zéro.

    "Premier mois" = le nombre de jours entre la date de départ et la date de la fin de ce mois de départ (*remarque à la fin)

    FIN.MOIS($E3;0)-$E3

    "Dernier mois" = le nombre de jours entre le premier du mois et la date de fin

    La fonction JOUR me retourne directement cette valeur

    "Mois entier" = le nombre de jours dans ce mois-là. En combinant la fonction JOUR et la fonction FIN.MOIS, j'obtiens selon le cas 31 29 30 jours

    La formule complète est

    =SI(FIN.MOIS(J$1;0)<$E3;0;
    SI(DATE(ANNEE(J$1);MOIS(J$1);1)>$F3;0;
    SI(ET(ANNEE(J$1)=ANNEE($E3);MOIS(J$1)=MOIS($E3));FIN.MOIS($E3;0)-$E3;
    SI(ET(ANNEE(J$1)=ANNEE($F3);MOIS(J$1)=MOIS($F3));JOUR($F3);JOUR(FIN.MOIS(J$1;0))))))
    Je vérifie bien que mon nombre de jours en ligne est bien égal au nombre de jours dans la colonne G

    Si par hasard, il fallait compter le jour de démarrage comme un jour effectif, il faudrait ajouter +1 dans les formules de la colonne G (pour que le montant par jour en tienne compte) et ajouter +1 également dans la partie de la formule du "Premier mois"

    Il ne reste plus qu'à multiplier tout ce qu'on a trouvé par le montant par jour et on a terminé

    Un fichier lié sera beaucoup plus parlant.

    https://www.cjoint.com/c/JBvleuwkPmP

    En espérant avoir répondu à la question.

    Bon courage


    MicXL Posté le 21 février 2020, 12:05
    par MicXL

    Si vous n'êtes pas inscrit sur le site, vous pouvez poster librement (en tant qu'invité).
    Pour cela, indiquez un pseudonyme (nom d'utilisateur) et une adresse email :