Microsoft 365 Règle de 3

olivier777

XLDnaute Nouveau
Bonjour à tous
,
Dans le fichier joint je souhaiterais pouvoir trouver les bonnes formules qui permettraient de répartir une valeur (Colonne D) sur les colonnes F à Q, en fonction des bornes de dates (Colonnes B et C)

Si le mois de la date de début et de fin est le même alors toute la valeur est affectée au mois unique
Si le mois de la date de début est différent alors on compte le nombre de jour entre les 2 dates puis on réparti dans les colonnes mois, en fonction du nombre de jours
Exemple, une valeur 100, une date de début le 28/07/15, une date de fin le 05/08/2015 alors il se passe 9 jours (date de début et date de fin comprise)

Donc 100 / 9 = 11,11
Il s'agit de répartir ces 100 sur Juillet et Aout donc
pour juillet 28,29,30 et 31, soit 4 jours. 11,11 * 4 = 44,4 (Arrondi à une décimale)
pour aout 01,02,03,04 et 05, soit 5 jours. 11.11*5=55,6 (Arrondi à une décimale)

Pensez-vous que cela soit possible par formule ou bien faut-il passer par une macro ou autre ?

Merci beaucoup
 

Pièces jointes

  • DECOUPEMOIS.xlsx
    34.3 KB · Affichages: 11

Dranreb

XLDnaute Barbatruc
Bonjour.
C'est quelque chose comme ça :
Code:
=$D3*(MAX(MIN(DATE(2015;COLONNE()-4;1);$C3)-MAX(DATE(2015;COLONNE()-5;1);$B3);0)/($C3-$B3))
Mais je serais plus tranquille si les titres étaient des dates de début de mois avec un format "mmmm aa"
 

olivier777

XLDnaute Nouveau
Quelle rapidité ! Merci beaucoup

C'est presque ça mais en fait la base pourrait avoir plusieurs années.

Et par ligne il faut redistribuer la valeur que sur le/les mois concernés
Si il y a du juillet et du aout dans les dates début / fin alors la valeur recalculée sera répartie sur les colonnes juillet/aout de la ligne, sans se soucier de l'année, juste du mois.

Sinon, si la base avait 10 années alors il faudrait faire 10 x 12 colonnes

Je ne sais pas si ce que je dis est clair, je doute 😁

En tous cas merci :)
 

olivier777

XLDnaute Nouveau
En fait la solution proposée par Dranreb est pas mal,

En remplaçant =$D3*(MAX(MIN(DATE(2015;COLONNE()-4;1);$C3)-MAX(DATE(2015;COLONNE()-5;1);$B3);0)/($C3-$B3))

par

=$D3*(MAX(MIN(DATE(ANNEE($C3);COLONNE()-4;1);$C3)-MAX(DATE(ANNEE($B3);COLONNE()-5;1);$B3);0)/($C3-$B3))

ça fonctionne partout, même sur d'autres année sauf si il y a une ligne avec une période à cheval sur 2 années.
Voir ligne 6
 

Pièces jointes

  • DECOUPEMOIS.xlsx
    34.1 KB · Affichages: 5

olivier777

XLDnaute Nouveau
Bonjour à tous,

je ne sais toujours pas comment résoudre le souci si il y a une date à cheval sur 2 années.
Est-ce que quelqu'un aurait une idée ?

Egalement il y a une petite erreur je pense dans la formule. Elle oublie 1 jour
Exemple la ligne verte dans le fichier joint

date de début 28/07/2015, date de fin 05/08/2015
au total cela fait 9 jours, répartis ainsi : 4 jours en juillet et 5 jours sur aout
Au lieu d'avoir 50 sur les 2 mois ne devrait-il pas y avoir 44,4 sur juillet et 55,6 sur aout ?

Merci
 

Pièces jointes

  • DECOUPEMOIS (3).xlsx
    34.1 KB · Affichages: 3

Dranreb

XLDnaute Barbatruc
Bonjour.
Il fallait $C3+1 pour que la différence inclut la date de fin.
La question est toujours la même: de quelle année les colonnes sont-elles les mois ?
En supposant que c'est l'année de la plus ancienne date de début, en F3, à propager sur 5 lignes et 12 colonnes :
Code:
=$D3*(MAX(MIN(DATE(ANNEE(MIN($B$3:$B$7));COLONNE()-4;1);$C3+1)-MAX(DATE(ANNEE(MIN($B$3:$B$7));COLONNE()-5;1);$B3);0)/$E3)
E3, à propager sur 5 lignes :
Code:
=$C3+1-$B3
 

olivier777

XLDnaute Nouveau
Hello, c'est exactement ça JHA ! Merci

Dranreb, "de quelle année les colonnes sont-elles les mois"
Ce sont juste les 12 mois, non associés à une année particulière
Le but étant de répartir les valeurs sur les mois.

Merci beaucoup à tous pour votre aide sur ce sujet :)
 

Dranreb

XLDnaute Barbatruc
Mais dans ce cas si la période couvrait 10 ans, il faudrait sommer les jours de chaque mois de toutes les années couvertes avant de diviser par la même somme de tous les mois couverts ? À priori je ne sais pas faire par formules, mais il y aurait quand même du mieux en calculant le tableau sur une année pouvant commencer plus tard qu'en janvier.
 

Pièces jointes

  • DatesOlivlier777.xlsx
    34.1 KB · Affichages: 5
Dernière édition:

Discussions similaires

Réponses
14
Affichages
601
Réponses
46
Affichages
1 K