Power BI is turning 10! Tune in for a special live episode on July 24 with behind-the-scenes stories, product evolution highlights, and a sneak peek at what’s in store for the future.
Save the dateEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
There is a table with date ranges (yyyymm format) :
Id | Start Period | End Period |
1 | 202001 | 202002 |
2 | 202005 | 202007 |
I would like to create a calculated table with this transformed data:
Id | Period |
1 | 202001 |
1 | 202002 |
2 | 202005 |
2 | 202006 |
2 | 202007 |
Is it possible to do it using DAX expression?
Solved! Go to Solution.
Sorry, I misunderstood the requirement... Here's the correct solution (even though this calculation should be done in Power Query).
// Assuming period is int
[Unpivoted Table] =
SELECTCOLUMNS(
generate(
T,
var __start = T[Start Period]
var __startDate =
var __year = int( __start / 100 )
var __month = mod( __start, 100 )
var __day = 1
return
date( __year, __month, __day )
var __end = T[End Period]
var __endDate =
var __year = int( __end / 100 )
var __month = mod( __end, 100 )
var __day = 1
return
date( __year, __month, __day )
return
DISTINCT(
SELECTCOLUMNS(
CALENDAR( __startDate, __endDate ),
"@Period", int( format( [Date], "yyyyMM" ) )
)
)
),
"Id", [Id],
"Period", [@Period]
)
@Anonymous , Create a period table with all periods. and have a measure like this
New measure = CALCULATE(COUNTx(FILTER(Table,Table[Start Period ]<=max('Period'[Period]) && ( Table[End Period]>max('Period'[Period]))),(Table[Id])))
Put this it visual with ID from your table Period from the Period table and the new measure
do not join period with your table
also refer
Sorry, I misunderstood the requirement... Here's the correct solution (even though this calculation should be done in Power Query).
// Assuming period is int
[Unpivoted Table] =
SELECTCOLUMNS(
generate(
T,
var __start = T[Start Period]
var __startDate =
var __year = int( __start / 100 )
var __month = mod( __start, 100 )
var __day = 1
return
date( __year, __month, __day )
var __end = T[End Period]
var __endDate =
var __year = int( __end / 100 )
var __month = mod( __end, 100 )
var __day = 1
return
date( __year, __month, __day )
return
DISTINCT(
SELECTCOLUMNS(
CALENDAR( __startDate, __endDate ),
"@Period", int( format( [Date], "yyyyMM" ) )
)
)
),
"Id", [Id],
"Period", [@Period]
)
Check out the July 2025 Power BI update to learn about new features.
User | Count |
---|---|
22 | |
7 | |
6 | |
6 | |
6 |
User | Count |
---|---|
27 | |
12 | |
10 | |
9 | |
6 |