Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more

Reply
KG1
Resolver I
Resolver I

Working day calculation

I am trying to create a card visual to show the total working days lost in the period

 

This period is 01/11/21 - 30/11/21

 

For those people off sick before the 01/11/21 I have created a new start date column to state the start date as 01/11/21 or the actual start date if started during the month of Nov.

 

If the sickness started on 01/11/21 and ended on 30/11/21 total working days should be 22.

 

When created a table to check the data and measure was working correctly I have a problem where the duration is showing 88 instead of 22

 

There is only 1 row in the data table which is related to that  employee number showing 88

 

KG1_0-1638551580932.png

When I select don't summarize in the duration for in period reporting it changes to 22 

 

KG1_1-1638551771419.png

 

 

The sum should be 22?

 

Here is the measure used to calculate working days

 

Duration for in period reporting = COUNTROWS(FILTER(ADDCOLUMNS(CALENDAR('Absence'[Start Date for in Period Count],'Absence'[End Date for Report]),"WorkDay", if(WEEKDAY([Date],2) <6,1,0)),[WorkDay] =1))
1 ACCEPTED SOLUTION
Anonymous
Not applicable

Hi @KG1 ,

Since you are creating a calculated column and its data type is numeric, it will be aggregated... You can change its aggreation function to MAX or MIN, or you can create a measeure as follows to get the unique value just as below screenshot. You can find the attachment for all details. 

 

Duration = 
MAXX (
    ALLEXCEPT (
        'Absence',
        'Absence'[Person Number],
        'Absence'[Start Date for in Period Count],
        'Absence'[End Date for Report]
    ),
    [Duration for in period reporting]
)

 

yingyinr_0-1638871282448.png

Best Regards

View solution in original post

2 REPLIES 2
Anonymous
Not applicable

Hi @KG1 ,

Since you are creating a calculated column and its data type is numeric, it will be aggregated... You can change its aggreation function to MAX or MIN, or you can create a measeure as follows to get the unique value just as below screenshot. You can find the attachment for all details. 

 

Duration = 
MAXX (
    ALLEXCEPT (
        'Absence',
        'Absence'[Person Number],
        'Absence'[Start Date for in Period Count],
        'Absence'[End Date for Report]
    ),
    [Duration for in period reporting]
)

 

yingyinr_0-1638871282448.png

Best Regards

amitchandak
Super User
Super User

@KG1 , if these are selected dates from a day table, then you can have a static value

 

Selected working days =
var _max =maxx(allselected(date),date[date])
var _min =maxx(allselected(date),date[date])
return
Duration for in period reporting = COUNTROWS(FILTER(ADDCOLUMNS(CALENDAR(_min,_max),"WorkDay", if(WEEKDAY([Date],2) <6,1,0)),[WorkDay] =1))

 

 

Or Try like
Duration for in period reporting = sumx(values('Absence'[Person Number]) ,
COUNTROWS(FILTER(ADDCOLUMNS(CALENDAR(Min('Absence'[Start Date for in Period Count]),Max('Absence'[End Date for Report])),"WorkDay", if(WEEKDAY([Date],2) <6,1,0)),[WorkDay] =1))

Share with Power BI Enthusiasts: Full Power BI Video (20 Hours) YouTube
Microsoft Fabric Series 60+ Videos YouTube
Microsoft Fabric Hindi End to End YouTube

Helpful resources

Announcements
Power BI DataViz World Championships

Power BI Dataviz World Championships

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!

December 2025 Power BI Update Carousel

Power BI Monthly Update - December 2025

Check out the December 2025 Power BI Holiday Recap!

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.