Forum Discussion

Russ's avatar
Russ
Helper I
3 years ago
Solved

Remove Blank Rows From a Running Total Calculation

I have the following Powerbi table visual, for which I am trying to add a running total for MeasureA using the Sortindex and not Reportdate to filter earlier results.

 

 

 

 

 

 

 

 

 

 

 

 

 

The measure I have written for the running total is as follows:

 

RunTotalMeasureA =
VAR CurrentIndex =
    SELECTEDVALUE ( Ledger[SortIndex] )
VAR FilteredTable =
    FILTER ( ALL ( Ledger ), Ledger[SortIndex] <= CurrentIndex )
RETURN
    CALCULATE ( [MeasureA], FilteredTable )

 

This works ok, but includes all SortIndex values when added to the table visual even if there is no value for MeasureA. Thus:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ideally, I would like to not show the blank rows and display only those for which measureA has a value. Is there any way I can rewrite the filter code - FILTER ( ALL ( Ledger ), Ledger[SortIndex] <= CurrentIndex ) to achieve this?

 

 

 

 

  • Russ one way is this:

     

    RunTotalMeasureA =
    VAR MeasureValue = [MeasureA]
    VAR CurrentIndex =
        SELECTEDVALUE ( Ledger[SortIndex] )
    VAR FilteredTable =
        FILTER ( ALL ( Ledger ), Ledger[SortIndex] <= CurrentIndex )
    RETURN
        CALCULATE ( [MeasureA], FilteredTable ) * DIVIDE ( MeasureValue, MeasureValue ) 

3 Replies

  • Russ one way is this:

     

    RunTotalMeasureA =
    VAR MeasureValue = [MeasureA]
    VAR CurrentIndex =
        SELECTEDVALUE ( Ledger[SortIndex] )
    VAR FilteredTable =
        FILTER ( ALL ( Ledger ), Ledger[SortIndex] <= CurrentIndex )
    RETURN
        CALCULATE ( [MeasureA], FilteredTable ) * DIVIDE ( MeasureValue, MeasureValue ) 
    • Russ's avatar
      Russ
      Helper I

      Thanks parry2k. Works perfect. Clever solution!!

  • In Dax Studio this code produces a table removing the Blanks, but Im not sure how to evaluate the running total from here.

     

    EVALUATE
    Filter(
    SUMMARIZE(
        Ledger,
        Ledger[SortIndex],
        Ledger[AccReportDate],
        "MesA",
        [MeasureA]

        
        ),
        ISBLANK([MesA])=False()
    )