Forum Discussion
Single filter with switch
I have the measurement below:
Measure =
Var ValorSelecionado = SELECTEDVALUE(Ordem[Tipo])
Var ValorDataIni = DATE(YEAR([_Data Relatório]),MONTH([_Data Relatório]),1)
Var ValorDataFin = [_Data Relatório]
Var ValorVersao = [_Versão 1]
RETURN
SWITCH(TRUE(),
ValorSelecionado = "AAA" ,
CALCULATE( [Total AAA] , Light[Versão] = ValorVersao , DATESBETWEEN( Light[Data].[Date], ValorDataIni, ValorDataIni)) ,
ValorSelecionado = "BBB" ,
CALCULATE( [Total BBB] , Light[Versão] = ValorVersao , DATESBETWEEN( Light[Data].[Date], ValorDataIni, ValorDataIni)) ,
ValorSelecionado = "CCC" ,
CALCULATE( [Total CCC] , Light[Versão] = ValorVersao , DATESBETWEEN( Light[Data].[Date], ValorDataIni, ValorDataIni)) ,
ValorSelecionado = "DDD" ,
CALCULATE( [Total DDD] , Light[Versão] = ValorVersao , DATESBETWEEN( Light[Data].[Date], ValorDataIni, ValorDataIni)) ,
)
Is it possible to make a single filter, not repeating for each case on the switch, something like that below in red?
Measure =
Var ValorSelecionado = SELECTEDVALUE(Ordem[Tipo])
Var ValorDataIni = DATE(YEAR([_Data Relatório]),MONTH([_Data Relatório]),1)
Var ValorDataFin = [_Data Relatório]
Var ValorVersao = [_Versão 1]
RETURN
FILTER(Light[Versão] = ValorVersao , DATESBETWEEN( Light[Data].[Date], ValorDataIni, ValorDataIni),
SWITCH(TRUE(),
ValorSelecionado = "AAA" , [Total AAA] ,
ValorSelecionado = "BBB" , [Total BBB] ,
ValorSelecionado = "CCC" , [Total CCC] ,
ValorSelecionado = "DDD" , [Total DDD]
)
- Anonymous6 years ago
HI JorgePereira,
You can try below measure formula if it meets to your requirement:
Measure = VAR ValorSelecionado = SELECTEDVALUE ( Ordem[Tipo] ) VAR ValorDataIni = DATE ( YEAR ( [_Data Relatório] ), MONTH ( [_Data Relatório] ), 1 ) VAR ValorDataFin = [_Data Relatório] VAR ValorVersao = [_Versão 1] RETURN CALCULATE ( SWITCH ( ValorSelecionado, "AAA", [Total AAA], "BBB", [Total BBB], "CCC", [Total CCC], "DDD", [Total DDD] ), FILTER ( ALLSELECTED ( Light ), Light[Versão] = ValorVersao && Light[Data].[Date] IN CALENDAR ( ValorDataIni, ValorDataIni ) ) )Regards,
Xiaoxin Sheng
2 Replies
- AnonymousNot applicable
HI JorgePereira,
You can try below measure formula if it meets to your requirement:
Measure = VAR ValorSelecionado = SELECTEDVALUE ( Ordem[Tipo] ) VAR ValorDataIni = DATE ( YEAR ( [_Data Relatório] ), MONTH ( [_Data Relatório] ), 1 ) VAR ValorDataFin = [_Data Relatório] VAR ValorVersao = [_Versão 1] RETURN CALCULATE ( SWITCH ( ValorSelecionado, "AAA", [Total AAA], "BBB", [Total BBB], "CCC", [Total CCC], "DDD", [Total DDD] ), FILTER ( ALLSELECTED ( Light ), Light[Versão] = ValorVersao && Light[Data].[Date] IN CALENDAR ( ValorDataIni, ValorDataIni ) ) )Regards,
Xiaoxin Sheng
- parry2kSuper User
JorgePereira yes, see below
Measure = Var ValorSelecionado = SELECTEDVALUE(Ordem[Tipo]) Var ValorDataIni = DATE(YEAR([_Data Relatório]),MONTH([_Data Relatório]),1) Var ValorDataFin = [_Data Relatório] Var ValorVersao = [_Versão 1] VAR __filterTable = FILTER(Light[Versão] = ValorVersao , DATESBETWEEN( Light[Data].[Date], ValorDataIni, ValorDataIni), RETURN SWITCH(TRUE(), ValorSelecionado = "AAA" , CALCULATE ([Total AAA] , __filterTable ), ValorSelecionado = "BBB" , CALCULATE ([Total BBB] ,__filterTable ), ValorSelecionado = "CCC" , CALCULATE ([Total CCC] ,__filterTable ), ValorSelecionado = "DDD" , CALCULATE ([Total DDD], __filterTable ) )I would ❤ Kudos if my solution helped. 👉 If you can spend time posting the question, you can also make efforts to give Kudos whoever helped to solve your problem. It is a token of appreciation!
⚡Visit us at https://perytus.com, your one-stop shop for Power BI related projects/training/consultancy.⚡