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 dateJoin us for an expert-led overview of the tools and concepts you'll need to become a Certified Power BI Data Analyst and pass exam PL-300. Register now.
Hi everyone,
I am having some trouble with my project planning.
My project data set looks like this:
ID - ID - project name -Employee - Function - status- days - start date - end date
With the following measure I create a Matrix visual of the staff members, and the date table and when they are scheduled.
Visual Project planning =
VAR start_date =
CALCULATE(
MIN('Input - planning'[Start date])
, ALL('Date table')
)
VAR end_date =
CALCULATE(
MAX('Input - Schedule'[End date])
, ALL('Date table')
)
VAR _period =
MIN('Date table'[Date]) >= start_date
&& MAX('Date table'[Date]) <= end_date
RETURN
IF(_period,1,BLANK())
But I would like to know if a staff member is scheduled twice. Any tips? Cause it seems like i cant use count, cause its not a table.
You could create the below as a measure and put it on a table visual with employees
Employee double booked =
var currentEmployee = SELECTEDVALUE('Project'[Employee])
var empTable = GENERATE(
SELECTCOLUMNS( FILTER( 'Project', 'Project'[Employee] = currentEmployee),
"@start date", 'Project'[Start date], "@end date", 'Project'[end date]),
DATESBETWEEN( 'Date'[Date], [@start date], [@end date])
)
var summaryTable = ADDCOLUMNS( SUMMARIZE( empTable, [Date]), "@num rows", CALCULATE(COUNTROWS(empTable)) )
return NOT( ISEMPTY( FILTER(summaryTable, [@num rows] > 1 )))
Hi @johnt75 ,
Thanks for the answer but that would only result in a 'true' value on the start date of every project.
Colum values Personeels planning =
VAR currentEmployee =
SELECTEDVALUE ( 'Input - personeel'[Naam] )
VAR empTable =
GENERATE (
SELECTCOLUMNS (
FILTER ( 'Input - planning', 'Input - planning'[Medewerker] = currentEmployee ),
"@start date", 'Input - planning'[Startdatum],
"@end date", 'Input - planning'[Einddatum]
),
DATESBETWEEN ( 'Date table'[Date], [@start date], [@end date] )
)
VAR summaryTable =
ADDCOLUMNS (
SUMMARIZE ( empTable, [Date] ),
"@num rows", CALCULATE ( COUNTROWS ( empTable ) )
)
VAR start_datum =
CALCULATE ( MIN ( 'Input - planning'[Startdatum] ), ALL ( 'Date table' ) )
VAR eind_datum =
CALCULATE ( MAX ( 'Input - planning'[Einddatum] ), ALL ( 'Date table' ) )
VAR _periode =
MIN ( 'Date table'[Date] ) >= start_datum
&& MAX ( 'Date table'[Date] ) <= eind_datum
RETURN
//IF(_periode,1,BLANK())
IF (
( ISEMPTY ( FILTER ( summaryTable, [@num rows] > 1 ) ) ),
( IF ( _periode, 1, BLANK () ) ),
2
)
Sorry, can't see why that's not working
User | Count |
---|---|
63 | |
59 | |
56 | |
38 | |
29 |
User | Count |
---|---|
82 | |
62 | |
45 | |
41 | |
40 |