ALLSELECTED Nesse caso não funcionaria.
Para a encontrar a posição em relação a um estado ou ao Brasil nesse caso a função tem que percorrer a tabela inteira, se colocássemos o ALLSELECTED, a função respeitaria o contexto em que ela esta inserida.
Veja abaixo:
USANDO A FUNÇÃO ALLSELECTED:
Ranking Estado =
VAR CROSS = CROSSJOIN(ALLSELECTED(dEstado[Municipio]), ALLSELECTED(dCalendario))
VAR TABELA_RANK = SUMMARIZE(dEstado, [Uf], [Municipio], "Nota", [ISF Desempenho], "Ranking", RANKX(CROSS, [ISF Desempenho]))
VAR SELECAO = VALUES(dEstado[Municipio])
RETURN
IF(
AND(
SELECTEDVALUE(dEstado[Municipio]) = BLANK(),
SELECTEDVALUE(dEstado[Uf]) = BLANK()),
0,
IF(AND(
SELECTEDVALUE(dEstado[Municipio]) = BLANK(),
SELECTEDVALUE(dEstado[Uf]) <> BLANK()),
0,
CALCULATE(SUMX(TABELA_RANK, [Ranking]), FILTER(CROSS, [Municipio] = SELECAO))))
RESULTADO:
USANDO A FUNÇÃO ALL:
Ranking Estado - IF Pagamento =
VAR CROSS = CROSSJOIN(ALL(dEstado[Municipio]), ALLSELECTED(dCalendario))
VAR TABELA_RANK = SUMMARIZE(dEstado, [Uf], [Municipio], "Nota", [ISF Desempenho], "Ranking", RANKX(CROSS, [ISF Desempenho]))
VAR SELECAO = VALUES(dEstado[Municipio])
RETURN
IF(
AND(
SELECTEDVALUE(dEstado[Municipio]) = BLANK(),
SELECTEDVALUE(dEstado[Uf]) = BLANK()),
0,
IF(AND(
SELECTEDVALUE(dEstado[Municipio]) = BLANK(),
SELECTEDVALUE(dEstado[Uf]) <> BLANK()),
0,
CALCULATE(SUMX(TABELA_RANK, [Ranking]), FILTER(CROSS, [Municipio] = SELECAO))))
RESULTADO:
Usando a função ALL será possível obter o ranking correto do município a nível estado e Brasil. Caso a gente use a função ALLSELECTED o ranking será sempre 1 pois a função respeitará o contexto aplicado.