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

The ultimate Microsoft Fabric, Power BI, Azure AI & SQL learning event! Join us in Las Vegas from March 26-28, 2024. Use code MSCUST for a $100 discount. Register Now

Reply
Anonymous
Not applicable

Multiply by amount of days in selected range

Hi all,

 

I am trying to calculate the percentage of days a group of 20 stores is open in Power BI so I can automate the process. I have the data in the current format:

DateStore numberClosed
01-01-2020    121
01-01-2020    71
03-01-2020    31
04-01-2020    121
07-01-2020    41
07-01-2020    11
08-01-2020    171

 

The calculation I basically want to make: Sum of 'Closed' / (amount of stores*amount of days in selected time frame) * 100, but I am struggling a bit with how to make that work in Power BI.

 

Many thanks,

E_E

1 ACCEPTED SOLUTION

I have a potential workaround but it's a bit rough and I'm sure others can improve it. 

Create a Date Table (I'll call this one Date Table) and populate a column with Dates, form a relationship with the date in that to your main table with the closed results from your original post (I'll call this one Table in this example) 

Add the following Columns to Date Table in DAX.
Total Storage = 20

Closed = CALCULATE(SUM('Table'[Closed]),'Table'[Date])
ClosedCalc = IF(ISBLANK('Date Table'[Closed]),0,('Date Table'[Closed]))
ClosedPC = 'Date Table'[ClosedCalc]/'Date Table'[Total Storage]

That should give you your totals to be able to do a date range calculation if you use either ClosedCalc or ClosedPC. 

I'm certain that Closed, ClosedCalc and ClosedPC should be able to be merged into a single Custom Column but my brain eludes me on that, others may know though!


If you decide to put these into a visual. Use the columns from Date Table to do so. 


Please note - I am not affiliated with Microsoft, I'm just an end user like yourself.
Just a regular guy doin' Data Science.

If my post has helped you, please don't forget to thumbs up or click "Accept as solution" if it solved your problem!

View solution in original post

7 REPLIES 7
AlexanderPrime
Solution Supplier
Solution Supplier

Perhaps make a measure with the following code:
 
Closed PC = (SUM('Table'[Closed])/20)
 
Then insert this into a table with just Date and Closed present. Then set Closed PC to a "Percentage" data type. I'd recommend against multiplying the results by 100 where possible as Power BI treats percentages as a decimal, with 1 equalling 100%. 
 

 


Please note - I am not affiliated with Microsoft, I'm just an end user like yourself.
Just a regular guy doin' Data Science.

If my post has helped you, please don't forget to thumbs up or click "Accept as solution" if it solved your problem!
Anonymous
Not applicable

Thank you very much.

 

The problem with a table with 'Closed' is that there are days there is no store closed and these days won't be counted in the percentage if I create such table.

Does your data source record those days with 0 closed? Or does it only generate an entry if there is at least one?


Please note - I am not affiliated with Microsoft, I'm just an end user like yourself.
Just a regular guy doin' Data Science.

If my post has helped you, please don't forget to thumbs up or click "Accept as solution" if it solved your problem!
Anonymous
Not applicable

The latter indeed, basically as in the table above. That's where I get stuck mostly. 

I have a potential workaround but it's a bit rough and I'm sure others can improve it. 

Create a Date Table (I'll call this one Date Table) and populate a column with Dates, form a relationship with the date in that to your main table with the closed results from your original post (I'll call this one Table in this example) 

Add the following Columns to Date Table in DAX.
Total Storage = 20

Closed = CALCULATE(SUM('Table'[Closed]),'Table'[Date])
ClosedCalc = IF(ISBLANK('Date Table'[Closed]),0,('Date Table'[Closed]))
ClosedPC = 'Date Table'[ClosedCalc]/'Date Table'[Total Storage]

That should give you your totals to be able to do a date range calculation if you use either ClosedCalc or ClosedPC. 

I'm certain that Closed, ClosedCalc and ClosedPC should be able to be merged into a single Custom Column but my brain eludes me on that, others may know though!


If you decide to put these into a visual. Use the columns from Date Table to do so. 


Please note - I am not affiliated with Microsoft, I'm just an end user like yourself.
Just a regular guy doin' Data Science.

If my post has helped you, please don't forget to thumbs up or click "Accept as solution" if it solved your problem!
amitchandak
Super User
Super User

@Anonymous , Try a measure like

 


new measure =
var _max = maxx(allselected(Date),Date[Date])
var _min = mainx(allselected(Date),Date[Date])
return
divide( calculate( sum(Table[Closed]), filter('Table', 'Table'[Date] >=_min && 'Table'[Date] <=_max)) , DistinctCOUNT(Store[StoreNumber]) * datediff(_min,_max,day))

 

Assumed there is store master

Anonymous
Not applicable

Thank you very much.

 

I get some errors with the part 'allselected(Date)', where it says 'parameter isn't the correct type' & cannot find '[Date]' in the 'Date[Date])' part

Helpful resources

Announcements
Fabric Community Conference

Microsoft Fabric Community Conference

Join us at our first-ever Microsoft Fabric Community Conference, March 26-28, 2024 in Las Vegas with 100+ sessions by community experts and Microsoft engineering.

Fabric Career Hub

Microsoft Fabric Career Hub

Explore career paths and learn resources in Fabric.

Fabric Partner Community

Microsoft Fabric Partner Community

Engage with the Fabric engineering team, hear of product updates, business opportunities, and resources in the Fabric Partner Community.

Power BI Header Change

Power BI Header Update

Read about the exciting updates for the Power BI forum.