The ultimate Fabric, Power BI, SQL, and AI community-led learning event. Save €200 with code FABCOMM.
Get registeredCompete to become Power BI Data Viz World Champion! First round ends August 18th. Get started.
I have this Cohort on a matrix table that has Columns that vary according to a column on one of my tables. I want it to display only values that are not null. Is there a way to do that?
I'm trying something like this:
IsLifetimeValid =
VAR CurrentLifetime = SELECTEDVALUE(Lifetime[Lifetime])
RETURN
IF(
NOT(ISBLANK(CurrentLifetime)) && CurrentLifetime <= [Maximo Lifetime],
TRUE,
FALSE
)
But it returns true to all the values, not just the ones that are smaller or equal to 17.
Here is the attachment to my pbix file.
https://drive.google.com/file/d/1frnBF0q_iSchNtfZoQGGpthfLihic9gy/view?usp=sharing
Solved! Go to Solution.
Hi @EugenioProlog ,
You can simply filter out the blanks in your filter pane by doing this:
This will not work for Cohort % because you always return 0 in the measure.
To fix this i suggest the following code
Cohort % =
VAR Numerador =
CALCULATE(
[Subscriptions],
FILTER(
client_base,
client_base[lifetime_months] >= SELECTEDVALUE(Lifetime[Lifetime])
)
)
VAR Denominador = [Subscriptions]
RETURN
if (ISBLANK(Numerador),BLANK(),
0+ DIVIDE(Numerador, Denominador, 0) ) // Retorna 0 se o denominador for 0)
And then also filter out the blanks for this measure out in your filter pane.
Hi @EugenioProlog ,
You issue is the fact that you are using a COALESCE on your metric:
This forces the value within the if to return 0 not at the metric itself but that the aggregated level of the calculation
I assume you want to have the information only at the month year level try to add a is inscope to your calculation:
See file attach.
Cohort =
VAR MaxLifetime =
CALCULATE(
MAX(client_base[lifetime_months]),
ALLEXCEPT(client_base, dim__calendar[dsc_mesano])
)
RETURN
IF(
SELECTEDVALUE(Lifetime[Lifetime]) <= MaxLifetime && ISINSCOPE(dim__calendar[dsc_mesano]),
COALESCE(
CALCULATE(
[Subscriptions],
FILTER(
client_base,
client_base[lifetime_months] >= SELECTEDVALUE(Lifetime[Lifetime])
)
),
0
)
)
Regards
Miguel Félix
Proud to be a Super User!
Check out my blog: Power BI em PortuguêsHi @EugenioProlog ,
You can simply filter out the blanks in your filter pane by doing this:
This will not work for Cohort % because you always return 0 in the measure.
To fix this i suggest the following code
Cohort % =
VAR Numerador =
CALCULATE(
[Subscriptions],
FILTER(
client_base,
client_base[lifetime_months] >= SELECTEDVALUE(Lifetime[Lifetime])
)
)
VAR Denominador = [Subscriptions]
RETURN
if (ISBLANK(Numerador),BLANK(),
0+ DIVIDE(Numerador, Denominador, 0) ) // Retorna 0 se o denominador for 0)
And then also filter out the blanks for this measure out in your filter pane.