AccueilBlogPower Query

Échelonner des contrats par mois avec Power Query

Thomas

voir la bio

Vous gérez des contrats ou abonnements et devez projeter votre chiffre d’affaires mensuel ? Cette méthode Power Query transforme votre tableau Début/Fin en échéancier mensuel prêt pour l’analyse : une ligne par mois et un marquage Début / Fin automatique. En combinant List.Dates pour générer les dates et List.Select pour ne garder que le même jour du mois que la date de début, vous obtenez un résultat propre et traçable.

Power Query

🗓️ Publié le

15.10.2025

Thomas

voir la bio

👀 Temps de lecture :

5 min.

Sommaire

Power Query & M

Pour en savoir plus, voici la formation Power Query & M !

À partir de 900 €

Sommaire

Problématique & enjeux

Vous avez un tableau de contrats avec date de début et date de fin. Pour piloter le chiffre d’affaires mensuel, vous devez développer une ligne par mois et indiquer si chaque mois correspond au début, au milieu ou à la fin du contrat.

  • Méthode manuelle : copier/coller, remplir mois par mois… long, risqué et non scalable.

  • Méthode automatisée : Power Query génère l’échéancier en quelques étapes, fiable et rapide, même sur des volumes massifs.



Annonce de la solution

C’est tout à fait possible dans Excel avec Power Query. Dans la vidéo, nous montrons pas à pas comment développer les mois et marquer Début/Fin automatiquement pour industrialiser vos reportings.

Contexte de la vidéo

Données source : un tableau avec Contrat, Début, Fin. Objectif : obtenir Contrat, Début/Fin, Échéancier (date mensuelle) où chaque contrat est répété autant de fois qu’il a de mois, avec les mois alignés sur le jour du début (ex. du 25/01 au 25/04 → 4 lignes).

Méthodologie pas à pas (Power Query)

Onglet DonnéesÀ partir d’un tableau/plage → ouvrir l’éditeur Power Query.

  1. Nettoyer les dates
    S’assurer que Début et Fin sont bien au type Date (heures inutiles).

Ajouter la colonne “Échéancier” (liste de dates quotidiennes)
Colonne personnalisée :



= List.Dates([Début], Number.From([Fin] - [Début]) + 1, #duration(1,0,0,0))

  1.  On crée toutes les dates du Début à la Fin incluses (pas seulement les mois).


Garder uniquement le “même jour du mois”


On filtre la liste pour ne conserver que les dates dont le numéro de jour correspond à celui de la date de Début (clé pour faire des “sauts mensuels”).

= let

    LeDébut = [Début]

  in

    List.Select(

      List.Dates(LeDébut, Number.From([Fin] - LeDébut) + 1, #duration(1,0,0,0)),

      each Date.Day(_) = Date.Day(LeDébut)

    )

  1.  L’usage de let … in variabilise [Début] pour l’utiliser dans List.Select.


  2. Développer la liste en lignes
    Sur la colonne ÉchéancierDévelopperEn nouvelles lignes.

  1. Créer l’étiquette Début/Fin
    Ajouter une colonne conditionnelle :


    • Si [Échéancier] = [Début] → "Début"

    • Sinon si [Échéancier] = [Fin] → "Fin"

    • Sinon → "-"

  2. Ne garder que les colonnes utiles
    Contrat, Début/Fin, Échéancier (typages : Texte / Texte / Date). Fermer & Charger.

👉 Retrouvez la démonstration complète en vidéo ici : Power Query - Créer un échéancier (niveau #1)

Résumé final

Nous partons d’un simple début/fin pour produire un échéancier mensuel robuste. Avec List.Dates puis List.Select, Power Query crée automatiquement autant de lignes que de mois, tout en taguant Début et Fin. Résultat : un pipeline fiable, scalable et réutilisable pour suivre CA, prévisionnels et engagements.

Power Query & M

Pour en savoir plus, voici la formation Power Query & M !

s'inscrire

Autres articles recommandés

Thomas

Thomas est le Chief Marketing Officer de Solpedinn Excel depuis Septembre 2024. Après avoir effectué des études dans l'information en spécialisation journalisme, il s'est réorienté dans la formation et l’ingénierie pédagogique (notamment sur Excel). Il a rejoint Solpedinn pour développer la notoriété de l'école de référence sur Excel et la bureautique !

:target { scroll-margin-top: -8EM; }