This time we’re going bigger than ever. Fabric, Power BI, SQL, AI and more. We're covering it all. You won't want to miss it.
Learn moreLevel up your Power BI skills this month - build one visual each week and tell better stories with data! Get started
Hi,
I have a table with: Countries, Products, Attributes (eur, gbp, units etc), Sales & Dates. Each product was launched on different dates in different countries but my requirement is for a single chart to compare the launches, with sales on the y axis (with an Attribute slicer) , Month # on the x axis (Month 1 being launch month) and Country in the legend.
I can think of a slow way to do this in power query: 1 query per product & country combination, index column from 1 and then join them all together again but if anyone has a more elegant way of doing this in PQ or DAX it would be great.
Solved! Go to Solution.
For this kind of cohort/launch-aligned chart, the cleanest approach is a calculated column on the fact table that turns each row's date into "months since launch" for that Country and Product. Then put that column on the X axis, Country in the legend, and Sales on Y, with your Attribute as a slicer.
Months Since Launch =
VAR LaunchDate =
CALCULATE ( MIN ( 'Sales'[Date] ), ALLEXCEPT ( 'Sales', 'Sales'[Country], 'Sales'[Product] ) )
RETURN
( YEAR ( 'Sales'[Date] ) - YEAR ( LaunchDate ) ) * 12
+ ( MONTH ( 'Sales'[Date] ) - MONTH ( LaunchDate ) ) + 1Replace 'Sales' with your table name. The launch month shows as 1, the next month as 2, and so on, no Power Query loops needed. If you want a clean "M1, M2, ..." label, add another column: M Label = "M" & 'Sales'[Months Since Launch] and use that on the axis.
If this works for you, kindly mark it as the solution and give a thumbs up.
Best,
Shai Karmani
You may want to explore the recently announced unmaterialized calculated columns feature. This will give you the flexibility to do dynamic-ish bucketing.
For this kind of cohort/launch-aligned chart, the cleanest approach is a calculated column on the fact table that turns each row's date into "months since launch" for that Country and Product. Then put that column on the X axis, Country in the legend, and Sales on Y, with your Attribute as a slicer.
Months Since Launch =
VAR LaunchDate =
CALCULATE ( MIN ( 'Sales'[Date] ), ALLEXCEPT ( 'Sales', 'Sales'[Country], 'Sales'[Product] ) )
RETURN
( YEAR ( 'Sales'[Date] ) - YEAR ( LaunchDate ) ) * 12
+ ( MONTH ( 'Sales'[Date] ) - MONTH ( LaunchDate ) ) + 1Replace 'Sales' with your table name. The launch month shows as 1, the next month as 2, and so on, no Power Query loops needed. If you want a clean "M1, M2, ..." label, add another column: M Label = "M" & 'Sales'[Months Since Launch] and use that on the axis.
If this works for you, kindly mark it as the solution and give a thumbs up.
Best,
Shai Karmani
Perfect, that does the trick. Thanks for your help
Check out the April 2026 Power BI update to learn about new features.
Sign up to receive a private message when registration opens and key events begin.
If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.
| User | Count |
|---|---|
| 30 | |
| 24 | |
| 23 | |
| 17 | |
| 16 |
| User | Count |
|---|---|
| 61 | |
| 35 | |
| 29 | |
| 23 | |
| 22 |