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

Level up your Power BI skills this month - build one visual each week and tell better stories with data! Get started

Reply
alexbjorlig
Helper IV
Helper IV

How to accumulate sales, even for missing year-month

My objective is to create a measure for accumulate sales, even for months with no sales.

With the given date-table:

 

Calendar

Date     MonthYear    
1/1/2017    2017-01
2/1/2017    2017-01
... 
1/2/2017    2017-02
1/3/2017    2017-03
1/4/2017    2017-04

 

SalesTable

 

dateSales
1/1/2017    200
1/2/2017    300


How do I get this output:

 

Month Year    Accumulated Sales    
2017-01    200
2017-02    500
2017-03    500
2017-04    500
  

 

Thank you so much for taking a look at this. 

What I have tried:

 

 

 

 

SUMX(
    VALUES('Calendar'[MonthYear]),
    VAR MAX_MONTH = MAX('Calendar'[MonthYear]) RETURN
    CALCULATE(SUM('SalesTable'[Sales]) + 0, 'Calendar'[MonthYear] <= MAX_MONTH
))

 

 

 

 

The hard part for me is getting values, even for year-months with no sales (and somehow preserving the row context).

1 ACCEPTED SOLUTION
AlexisOlson
Super User
Super User

If you're using the calendar table for the rows in your visual, then this should be a standard cumulative total regardless of gaps in the sales fact table.

 

CALCULATE (
    SUM ( 'SalesTable'[Sales] ),
    FILTER (
        ALL ( 'Calendar' ),
        'Calendar'[MonthYear] <= MAX ( 'Calendar'[MonthYear] )
    )
)

View solution in original post

3 REPLIES 3
AlexisOlson
Super User
Super User

If you're using the calendar table for the rows in your visual, then this should be a standard cumulative total regardless of gaps in the sales fact table.

 

CALCULATE (
    SUM ( 'SalesTable'[Sales] ),
    FILTER (
        ALL ( 'Calendar' ),
        'Calendar'[MonthYear] <= MAX ( 'Calendar'[MonthYear] )
    )
)
smpa01
Community Champion
Community Champion

@alexbjorlig  if you have the following Fact table

 

smpa01_0-1633637480389.png

 

smpa01_0-1633637571476.png

 

 

sales =
VAR _date =
    MAX ( 'Calendar'[Calendar.Date] )
VAR _runningTotal =
    CALCULATE (
        SUM ( 'Fact'[Fact.Sales] ),
        ALL ( 'Calendar' ),
        'Calendar'[Calendar.Date] <= _date
    )
RETURN
    _runningTotal

 

 

 

Question - Do you want the subtotal level to be rolled up as well? e.g. in this example ->200+4*500+1100=3300 or 1100 is the correct toal desired?

 

 

 

 


========================
Did I answer your question? Mark my post as a solution!
Proud to be a Super User
My Custom Visualization Projects
• Plotting Live Sound: Live Sound
• Beautiful News: Women in Parliament, Energy Mix, Shrinking Armies
• Visual Capitalist: Working Hrs
• Others: Easing Graph, Animated Calendar
MayViz Submissions
• Week 1: View
• Week 2: View
========================

What is the _sum variable defined for?

Helpful resources

Announcements
April Power BI Update Carousel

Power BI Monthly Update - April 2026

Check out the April 2026 Power BI update to learn about new features.

Fabric SQL PBI Data Days

Data Days 2026 coming soon!

Sign up to receive a private message when registration opens and key events begin.

New to Fabric survey Carousel

New to Fabric Survey

If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.

Power BI DataViz World Championships carousel

Power BI DataViz World Championships - June 2026

A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.