Join us for an expert-led overview of the tools and concepts you'll need to pass exam PL-300. The first session starts on June 11th. See you there!
Get registeredPower BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.
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.
This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.
Check out the June 2025 Power BI update to learn about new features.
User | Count |
---|---|
76 | |
76 | |
55 | |
37 | |
34 |
User | Count |
---|---|
99 | |
56 | |
51 | |
44 | |
40 |