Forum Discussion

Bruin87's avatar
Bruin87
Frequent Visitor
5 years ago
Solved

Filter Context - Card Visual

Hi, 

 

I have a measure (data model: https://community.powerbi.com/t5/Desktop/Semi-Additive-Calculations-Total-Values-wrong/m-p/1824181#M707989)

 

Balance Closing =
VAR MaxDate = MAX('Date'[Date])
VAR MaxDates =
CALCULATETABLE(
ADDCOLUMNS(
SUMMARIZE(FactBankBalances; FactBankBalances[IBAN]);
"@MaxDate"; CALCULATE(MAX(FactBankBalances[DateKey]))
);
'Date'[Date] <= MaxDate
)
VAR MaxDatesWithLineage =
TREATAS(MaxDates; FactBankBalances[IBAN]; 'Date'[Date])
VAR BalanceClosing = CALCULATE(SUM(FactBankBalances[Kontostand_Euro]); MaxDatesWithLineage)
VAR Result = CALCULATE(
DIVIDE(BalanceClosing;
SELECTEDVALUE(ReportNumberFormat[SelectedDivision]);
1)
)
Return
Result
................................
 
I am trying to show a card visual with this measure for a certain account. However, I am not able to filter the card visual by the account name. I realized that a filter (applied on "all sites" on the date) keeps me from filtering that account, as their values are reported for a date before the selected time frame. Rather than being able to filter a certain account I receive the total of all accounts based on the filter context.
How do i have to change the above mentioned measure so that filtering by FactBankBalances[IBAN] would be possible despite the date filter?
 
Thanks in advance!
Marc
  • Hi, Bruin87 

    According to your description and DAX formula, it seems that the problem exists in the TREATAS() function you used because in this condition, your column FactBankBalances[IBAN] is always filtered by the selected value of ‘Date’[Date].

    Therefore, I think you can try to find a way to avoid using the TREATAS() function and use other functions to replace it.

     

    You can try to transform the DAX formulas I circled with the DAX below:

    VAR BalanceClosing =
    CALCULATE (
        SUM ( FactBankBalances[Kontostand_Euro] ),
        FILTER (
            ALLSELECTED ( FactBankBalances ),
            [IBAN] IN SELECTCOLUMNS ( MaxDates, "1", [@MaxDate] )
        )
    )

    More info about the TREATAS() function

     

    If you still have a problem, you can post some sample data(without sensitive data) and your expected result.

    How to Get Your Question Answered Quickly 

    Thank you very much!

     

    Best Regards,

    Community Support Team _Robert Qin

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

2 Replies

  • v-robertq-msft's avatar
    v-robertq-msft
    Community Support

    Hi, Bruin87 

    According to your description and DAX formula, it seems that the problem exists in the TREATAS() function you used because in this condition, your column FactBankBalances[IBAN] is always filtered by the selected value of ‘Date’[Date].

    Therefore, I think you can try to find a way to avoid using the TREATAS() function and use other functions to replace it.

     

    You can try to transform the DAX formulas I circled with the DAX below:

    VAR BalanceClosing =
    CALCULATE (
        SUM ( FactBankBalances[Kontostand_Euro] ),
        FILTER (
            ALLSELECTED ( FactBankBalances ),
            [IBAN] IN SELECTCOLUMNS ( MaxDates, "1", [@MaxDate] )
        )
    )

    More info about the TREATAS() function

     

    If you still have a problem, you can post some sample data(without sensitive data) and your expected result.

    How to Get Your Question Answered Quickly 

    Thank you very much!

     

    Best Regards,

    Community Support Team _Robert Qin

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

    • Bruin87's avatar
      Bruin87
      Frequent Visitor

      Hi v-robertq-msft , 

      thank you for your solution!

      I tried to implement it, however, i receive an error message :

       

      Error Message:
      MdxScript(Model) (36, 35) Calculation error in measure 'DAX Measures'[Balance Closing]: Function 'CONTAINSROW' does not support comparing values of type Date with values of type Text. Consider using the VALUE or FORMAT function to convert one of the values.

       

      Is it comparing the account name (IBAN) with the date?

       

      best regards

      marc