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

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

Reply
Reddyp
Helper I
Helper I

Inventory Calculation_DAX help

I need help in inventory calculation,
Example: I have received stock on 1st, 2nd, and 3rd and the stock is 10 shirts per day and total stock is 30 now 
and on 4th 15 shirts sold 

desired result: the sold count should deduct fromn first in date(the count sold is 15 on 4th so 10 should be decuted from 1st date and 5 shoud be deducted on 2nd)
and in the same way when 7 shirts sold on 5th date then 5 deducted from 2nd date (remaining in 2nd date) and 2 should deduct from 3rd date
 

Date

New Stock

Stock out

Result

01-01-2022

10

 

0

02-01-2022

10

 

0

03-01-2022

10

 

8

04-01-2022

 

15

 

05-01-2022

 

7

 

 

I got answer for this,

Measure =

  VAR __Date = MAX('Table'[Date])

  VAR __InTable = FILTER(ALL('Table'),[New Stock] <> BLANK())

  VAR __OutTable = FILTER(ALL('Table'),[Stock out] <> BLANK())

  VAR __Out = SUMX(__OutTable,[Stock out])

  VAR __ResultTable =

    ADDCOLUMNS(

      ADDCOLUMNS(

        __InTable,

        "__RunningTotal",SUMX(FILTER(__InTable,[Date]<=__Date),[New Stock])

      ),

      "__WhileLoop",[__RunningTotal] - __Out

    )

  VAR __Result = MAXX(FILTER(__ResultTable,[Date] = __Date),[__WhileLoop])

RETURN

  IF(__Result <= 0,0,__Result)

but I have another question

Now I need help in inventory calculation(help me in modifing above DAX code)) for individual branch.
Example: the inventory deduction should be done on specific branch

 

Example: 

Date

Branch

New Stock

Stock out

Result

01-01-2022

Branch 1

10

 

0

02-01-2022

Branch 1

10

 

0

03-01-2022

Branch 1

10

 

8

04-01-2022

Branch 1

 

15

 

05-01-2022

Branch 1

 

7

 

06-01-2022

Branch 2

10

 

0

07-01-2022

Branch 2

10

 

5

08-01-2022

Branch 2

10

 

10

09-01-2022

Branch 2

 

15

 

10-01-2022

Branch 3

10

 

0

11-01-2022

Branch 3

 

10

 

 

2 REPLIES 2
amitchandak
Super User
Super User

@Reddyp , With help from a common date table

 

CALCULATE(SUM(Table[New Stock]),filter(date,date[date] <=maxx(date,date[date]))) - CALCULATE(SUM(Table[Out ]),filter(date,date[date] <=maxx(date,date[date])))

@amitchandak Thanks for the reply 
another question: Where can i fit this above mentioned DAX code into below code. the below mentioned DAX is designed to calculate inventory but now I need to update code for this old DAX measure where the deduction of inventory stock will happen based on branch name.

Old DAX measure: 

Measure =

  VAR __Date = MAX('Table'[Date])

  VAR __InTable = FILTER(ALL('Table'),[New Stock] <> BLANK())

  VAR __OutTable = FILTER(ALL('Table'),[Stock out] <> BLANK())

  VAR __Out = SUMX(__OutTable,[Stock out])

  VAR __ResultTable =

    ADDCOLUMNS(

      ADDCOLUMNS(

        __InTable,

        "__RunningTotal",SUMX(FILTER(__InTable,[Date]<=__Date),[New Stock])

      ),

      "__WhileLoop",[__RunningTotal] - __Out

    )

  VAR __Result = MAXX(FILTER(__ResultTable,[Date] = __Date),[__WhileLoop])

RETURN

  IF(__Result <= 0,0,__Result)

Helpful resources

Announcements
Sept PBI Carousel

Power BI Monthly Update - September 2024

Check out the September 2024 Power BI update to learn about new features.

September Hackathon Carousel

Microsoft Fabric & AI Learning Hackathon

Learn from experts, get hands-on experience, and win awesome prizes.

Sept NL Carousel

Fabric Community Update - September 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors
Top Kudoed Authors