Formule excel de dates avec des montants

Résolu

Bonjour à tous,

Je souhaiterai trouver une formule qui me permettrai de me faire gagner du temps mais surtout éviter les erreurs.

J'ai un tableau avec en :

Colonne F2 des dates d'entrée

Colonne G2 des dates de sorties

Colonnes AH "janv-25"; AI "Fev-25'; AJ "Mars-25"; .................. jusqu'à Dec-30

Je voudrais que lorsque je rentre des dates d'entrées et de sorties, les cellules AH; AI; AJ; ................. me mette une somme de 100 € sur chaque mois de présence.

Exemple si:

Du 01/01/2025 au 31/10/205 soit 10 mois :

je voudrais que mes cellules se remplissent seules

Jan-25 = 100 €

Fev-25 = 100 €

Mars-25 = 100 €

etc.

Merci d'avance pour vos retours

18 réponses

Résumé de la discussion

Le but est d’allouer automatiquement 100 € par mois de présence entre la date d’entrée (F2) et la date de sortie (G2), sur les colonnes mensuelles allant de Jan-25 à Dec-30. La solution consiste à tester, pour chaque mois affiché en en-tête, si ce mois se situe entre le mois de début et le mois de fin et à retourner 100 € s’il est inclus (avec des variantes utilisant FIN.MOIS ou MOIS.DECALER pour ajuster les décalages). Une difficulté relevée est le cas d’un début en milieu de mois, qui nécessite un ajustement pour compter les mois complets et limiter la durée (par exemple à 11 mois), avec des modifications lorsque la colonne de fin change (G ou J) et lorsque le montant peut varier (I). Des formules finales proposent une vérification mois-année du mois courant par rapport aux dates de début et de fin, afin de remplir automatiquement les cellules correspondantes.

Bobot (l’IA à votre service)
  1. Bonjour:

    F2 01/01/2025
    G2 31/10/2025

    H1=F2 au format date personnalisé mmm aa
    I1=MOIS.DECALER(H1;1) et tirer vers la droite jusqu'en 2030 ou où on veut

    H2==SI($G$2>=FIN.MOIS(H1;0);100;"") au format monétaire et tirer vers la droite

    0
    1. Bonjour,

      C'est impeccable, un grand merci.

      Au plaisir et bon week-end

      0
    2. Re bonjour,

      J'ai pas fait attention mais j'ai des dates inferieurs.

      Exemple:

      Si j'ai en date 01/05/2024 au 31/12/2025 avec votre formule, çà me rempli à partir de Janv-24 alors que çà commence en Mai-24

      Désolé :-(

      0
    3. @jeje95270

      Re,

      Non, chez moi c'est correct, je suppose que tu as mal mis la formule en H1 qui doit valoir F2 (01/05/2024).

      0
  2. Bonjour,

    Pour le fun, avec Excel 365, formule unique en AH3 :

    =MAP(AH2:DA2;LAMBDA(x;SI(ET(x>=F2;x<=G2);100;"")))

    Daniel


    0
    1. Bonjour, 

      J'ai essayé votre formule et je n'arrive pas à avoir comme vous.

      au lieu d'avoir 100 j'ai #NOM?.

      J'ai pourtant copier votre formule.

      =MAP(AH2:DA2;LAMBDA(x;SI(ET(x>=F2;x<=G2);100;"")))

      Merci beaucoup

      0
      1. C'est par ce que ta version d'Office n'est pas Microsoft 365.

        Daniel


        0
        1. Ah mince,

          Merci quand même.

          0
      2. Essaie, en AH3, à recopier vers la droite :

        =SI(ET(AH2>=$F$2;AH2<=$G$2);100;"")

        Daniel


        0
        1.  Bonjour,

          Votre formule marche très bien mais il y a une partie qui me pose un problème.

          Si j'ai une date qui commence en milieu de mois, il me décompte pas la prime, car tout mois commencé est dû.

          Cà marche très bien pour les dates de fin.

          Merci pour l'aide.

          0
        2. @jeje95270

          Bonjour,

          Personne n'avait dit dans l'énoncé qu'il y a avait plusieurs salariés et qu'il fallait une plage de dates fixe.

          En H1 le début de la plage par exemple 01/01/2025 mmm aa

          En I1 =MOIS.DECALER(H1;1) tirer vers la droite

          En H2 =SI(ET(FIN.MOIS(H$1;0)>=$F2;FIN.MOIS(H$1;0)<=$G2);100;"") format monétaire tirer vers la droite


           

          1
        3. @brucine

          Bonjour,

          Oui désolé j'avais oublié de signaler cet élément.

          Merci pour la formule, elle est adapté à mon projet.

          Au plaisir

          0
        4. @brucine

          Bonjour Brucine,

          Je reviens vers vous car avec le temps je me suis rendu compte d'un petit problème.

          Votre formule me convient très bien mais lorsque je regarde le dernier mois, elle ne prend en compte celui çi.

          Quand je met une date avant le 30 du mois, il ne me prend pas en compte le montant.

          Est-il possible de mettre :

          Si la date est entre le 1 et le 5 du mois = pas de montant

          et 

          Si la date est au delà du 5 du mois = le montant est pris en compte.

          J'espère être clair dans mes explications. 

          Merci par avance.

          0
      3. Bonjour à tous,

        Essaie en H2 :

        =SI(ET(MOIS($F2)<=MOIS(H$1);ANNEE($F2)<=ANNEE(H$1);MOIS($G2)>=MOIS(H$1);ANNEE($G2)>=ANNEE(H$1));100;"")

        Daniel


        0
        1. Bonjour Daniel,

          Cela fonctionne bien pour le mois de novembre, mais je n'ai pas la différence entre :

          Sur la seconde date (29/11/2025), du 1 au 5 du mois je ne souhaite pas le montant.

          par contre du 6 au 31 du mois de la seconde date (29/11/2025) çà soit comptabilisé.

          Merci beaucoup pour l'aide

          0
          1. Peut-être :

            =SI(ET(MOIS($F3)<=MOIS(J$1);ANNEE($F3)<=ANNEE(J$1);OU(ET(MOIS($G3)>MOIS(J$1);ANNEE($G3)>=ANNEE(J$1));ET(MOIS($G3)=MOIS(J$1);ANNEE($G3)=ANNEE(J$1);JOUR($G3)>5)));100;"")

            Daniel


            0
            1. Super !!!!!!!!!

              C'est bon

              Merci beaucoup et bon week end

              0
              1. Re,

                J'ai rajouté des données qui me sont indispensable et en utilisant votre formule et en modifiant les cellules, je n'arrive pas à mon résultat.

                Sur les même bases que ma première demande, je voudrais qu'il me prenne en seconde date la colonne "J" au lieu de "G" et le montant en colonne "I" car il y a différent montants. 

                Un grand merci pour votre intervention.

                0
                1. "'ai rajouté des données qui me sont indispensable et en utilisant votre formule et en modifiant les cellules, je n'arrive pas à mon résultat."

                  Tu veux dire que la formule ne donne pas les résultats escomptés ? Ou qu'il faut seulement la modifier pour tenir compte de l'évolution de ta demande ?

                  Daniel

                  0
              2. Bonjour Daniel,

                Je joints un screen pour être plus compréhensible.

                D'autre part, j'ai oublié de mettre un élément dans la formule.

                Les montants doivent apparaître et ne pas excéder 11 mois par rapport à la date de début (F2)

                Donc il faudrait je pense dans la cellule (K2) : K2 = F2 + 11 mois

                Merci encore

                0
                1. En AD2 à recopier vers le bas et la droite :

                  =SI(ET(DATE(ANNEE($F2);MOIS($F2);1)<=AD$1;OU(DATE(ANNEE($J2);MOIS($J2);1)>AD$1;ET(DATE(ANNEE($J2);MOIS($J2);1)=AD$1;JOUR($J2)>5)));$I2;"")

                  Daniel


                  0
                  1. Désolé, mais çà ne marche pas.

                    Pour les 11 mois après la date de début, j'ai trouvé la formule en mettant (F2+365)

                    0
                    1. Tu dois stabiliser la structure de tes données avant de dire qu "ça ne marche pas". La date de fin des aides est passée de J à K et tu as conservé J dans la formule. Pareil pour le montant passé de I à J mais pas dans la formule. Corrige et dis-moi ensuite ce que je dois modifier.

                      Daniel


                      0
                      1. C'est bon j'ai modifié, effectivement désolé, je n'avais pas vu.

                        Par contre il ne me fait pas la différence si c'est avant le 5 ou après le 5 du mois pour la prise compte du montant.

                        0
                        1. Oui effectivement, j'ai revu les formules et c'est bon j'ai trouvé mais erreurs.

                          Merci encore c'est super !!!!!!!!

                          A bientôt ;-)

                          0