Forum Discussion

guibenassi's avatar
guibenassi
Advocate II
6 years ago
Solved

Conditional calculated with date

I have made this measure to get the value of [Custo_tabela-Un] in case that there is no number in a respective date, in this case I look for the previous date to populate the columm, and if there is not a value in the day before I go to 2 days before and then goes on.
The problem is that it only works with the first condition, if I put the second condition no value comes.
 
 
 
Custo_Tab_Un_Corrigido1 =
VAR MediaTabela = sum(tmp_vendas_teste[custo_tabela_un])

 

RETURN
if(
MediaTabela=0;
IF(
Calculate(
MediaTabela;
DATEADD(dCalendario[Date];-1;day)
)=0;
IF(
Calculate(
MediaTabela;
DATEADD(dCalendario[Date];-2;DAY)
)=0;
 
calculate(
MediaTabela;
DATEADD(dCalendario[Date];-2;day)
)
)
;
Calculate(
MediaTabela;
DATEADD(dCalendario[Date];-1;DAY)
)
)
;MediaTabela
  • Hi guibenassi 

    Create a measure

    Measure = CALCULATE(FIRSTNONBLANK('Table'[value],0),FILTER(ALLSELECTED('calendar'),'calendar'[Date]<MAX('calendar'[Date])))

    Best Regards
    Maggie
    Community Support Team _ Maggie Li
    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

4 Replies

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

    Hi guibenassi 

    Create a measure

    Measure = CALCULATE(FIRSTNONBLANK('Table'[value],0),FILTER(ALLSELECTED('calendar'),'calendar'[Date]<MAX('calendar'[Date])))

    Best Regards
    Maggie
    Community Support Team _ Maggie Li
    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

    • guibenassi's avatar
      guibenassi
      Advocate II

      Thanks for the measure. I did just a few improvement to works best.
      I include the = in the MAX calendar date and insert an IF for the first value provided.
      Above the complete new measure.
      Thanks a lot for the solution

      v-juanli-msft 

       

      Custo_Tab_Un_Corrig =
      VAR Branco = CALCULATE(
      FIRSTNONBLANK(tmp_vendas_teste[custo_tabela_un];0);
      FILTER(
      ALLSELECTED(dCalendario[Date]);
      dCalendario[Date]<=MAX(dCalendario[Date])
      )
      )
      RETURN
      IF(
      Branco=0;
      sum(tmp_vendas_teste[custo_tabela_un]);
      Branco
      )
  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi Anonymous ,

     

    Could you please share the sample data and your expected output for my better understanding.

    Best Regards,
    Anonymous