Power BI · 2026-10-11

ISINSCOPE no Power BI: adapte medidas à hierarquia

Use ISINSCOPE no Power BI para controlar medidas por nível da matriz. Diferencie filtro de hierarquia e teste detalhes, subtotais e total geral.

ISINSCOPE no Power BI: adapte medidas à hierarquia

ISINSCOPE no Power BI: adapte medidas à hierarquia

Usar ISINSCOPE no Power BI permite diferenciar o nível de agrupamento em que uma medida está sendo avaliada. Isso ajuda quando um valor faz sentido no detalhe, mas seria enganoso no subtotal. Uma meta específica por produto, por exemplo, não deve ser apresentada como se tivesse a mesma regra no total da categoria.

Este guia constrói uma matriz hipotética com categoria e produto. O objetivo é controlar a apresentação por nível e testar o contexto, sem transformar a função em uma correção automática para qualquer total inesperado.

1. Defina a intenção de ISINSCOPE no Power BI

A documentação da Microsoft sobre ISINSCOPE, consultada em 11 de outubro de 2026, descreve o retorno verdadeiro quando a coluna indicada é um nível da hierarquia. O argumento é uma coluna existente, não uma expressão calculada livremente.

Antes de escrever a medida, defina o comportamento esperado no produto, na categoria e no total geral. Você pode exibir um cálculo no detalhe e ocultá-lo nos demais níveis, ou escolher medidas diferentes com significado documentado. O importante é que o usuário consiga explicar a mudança. Não use uma condição de nível apenas para esconder um resultado que ainda não foi compreendido.

2. Prepare uma hierarquia com chaves confiáveis

Monte uma dimensão com ProdutoID, nome do produto e categoria. Use colunas dessa dimensão nas linhas da matriz. Verifique que os filtros alcançam a tabela de vendas pelo relacionamento esperado e que cada chave identifica um produto.

Se nomes de produtos se repetirem, a matriz pode agrupá-los sob o mesmo rótulo. Defina uma identificação de exibição que permita distingui-los ou aceite conscientemente a agregação pelo nome. Um teste de nível não corrige chaves duplicadas nem relacionamentos ambíguos. Escolha um conjunto pequeno, com duas categorias e dois produtos em cada uma, para conhecer exatamente os grupos que o visual deve produzir.

3. Crie uma medida de diagnóstico do nível

Comece com uma medida textual para inspecionar a matriz. O exemplo usa DAX, linguagem de expressões do modelo, e supõe uma tabela chamada DimProduto. Os nomes são didáticos; ajuste-os à sua estrutura.

Nível da matriz =
SWITCH(
    TRUE(),
    ISINSCOPE(DimProduto[Produto]), "Produto",
    ISINSCOPE(DimProduto[Categoria]), "Categoria",
    "Total"
)

Coloque essa medida ao lado da receita e expanda os grupos. Neste cenário, teste o nível mais detalhado antes do mais amplo. A referência de SWITCH explica que a primeira condição correspondente determina o resultado.

Não inverta a ordem sem conferir o efeito nos produtos que também estão agrupados por categoria. Remova o diagnóstico da página final quando os testes estiverem documentados.

4. Diferencie seleção única de nível exibido

Um filtro pode deixar apenas uma categoria disponível, embora a célula avaliada continue sendo o total geral da matriz. Ter um valor selecionado e estar em um nível de agrupamento são perguntas diferentes. Confundir as duas pode fazer o total adotar indevidamente a apresentação do detalhe.

A função HASONEVALUE verifica se o contexto contém um único valor distinto. No projeto hipotético, selecione uma categoria no segmentador e mantenha o total geral visível. Compare o diagnóstico de nível com uma medida que conte categorias disponíveis. Essa experiência mostra qual pergunta cada teste responde e evita escolher a função apenas porque funcionou em um exemplo sem filtros.

5. Oculte uma medida que só faz sentido no detalhe

Suponha que a empresa mantenha uma meta diária específica para cada produto e ainda não tenha aprovado uma regra de subtotal. Você pode mostrar a medida aprovada apenas nas linhas de produto, retornando vazio nos outros níveis. Essa decisão deve ser comunicada no título ou em uma nota de leitura.

Meta exibida no detalhe =
IF(
    ISINSCOPE(DimProduto[Produto]),
    [Meta diária do produto],
    BLANK()
)

O exemplo pressupõe que a medida entre colchetes já foi validada. A referência de BLANK documenta o retorno vazio. Não troque esse vazio por zero só para preencher a matriz: zero comunicaria um valor de meta e poderia mudar a interpretação de cálculos posteriores.

6. Preserve o significado dos subtotais

Se houver uma regra gerencial para a categoria, implemente-a como medida própria e use a condição de nível para selecioná-la. Não suponha que o subtotal correto seja sempre a soma do detalhe. Uma taxa, uma média ou uma quantidade distinta pode exigir outra avaliação.

Em um exemplo hipotético, dois produtos foram comprados pelos mesmos dez clientes. Somar dez clientes de cada produto produziria vinte, mas a categoria continua tendo dez clientes distintos. Consulte a discussão de totais em DAX para investigar o cálculo. ISINSCOPE escolhe o comportamento conforme o nível; a validade da medida selecionada depende da regra e do contexto de dados.

7. Mantenha uma coluna numérica com unidade consistente

Evite apresentar receita em reais no produto e percentual na categoria sob um mesmo cabeçalho genérico. Mesmo que a condição funcione, a coluna fica difícil de interpretar. Prefira medidas separadas quando unidades ou decisões forem distintas.

Se o valor continuar numérico e apenas a apresentação precisar mudar, avalie o formato dinâmico de medidas. Não transforme números em texto para acrescentar símbolos dentro da expressão principal sem considerar o consumo posterior. Faça um teste com ordenação, exportação e um gráfico que reutilize a medida. O que parece claro na matriz pode perder seu significado quando é usado em outro visual.

8. Teste expansão, redução e troca de colunas

Execute o roteiro com todos os grupos recolhidos, uma categoria expandida e todos os produtos expandidos. Depois avance para outro nível usando os controles do visual. Registre qual resultado cada célula deve mostrar, incluindo subtotais habilitados e desabilitados.

Trocar a coluna de linha também muda a pergunta que a medida recebe. Uma matriz por região não coloca Produto em escopo só porque a página contém um filtro de produto. Se o relatório usa parâmetros de campo, teste cada opção permitida. Defina um comportamento padrão legível para níveis não previstos, em vez de deixar uma medida específica reaparecer em uma organização incompatível.

9. Confira filtros, dados ausentes e limitações

Inclua categoria com um produto, produto sem venda no período, categoria filtrada e total com várias categorias. Compare cada cenário com uma tabela de resultados esperados. O conjunto de testes deve abranger a tarefa real de navegação, não somente uma captura estática.

A Microsoft informa que ISINSCOPE não é suportada em colunas calculadas e regras de segurança por linhas no modo DirectQuery. Esse modo consulta a fonte conforme o uso do modelo. Aqui, o roteiro trabalha com medidas da matriz.

Não transfira o exemplo automaticamente para regras de acesso. Depois de alterar o modelo, repita os casos para confirmar que chaves e relacionamentos ainda sustentam os resultados.

10. Libere a matriz com uma regra visível

Mostre o significado de cada medida e explique por que certas células ficam vazias. Uma nota como “meta exibida somente por produto” permite ao leitor reconhecer uma decisão de desenho. Peça a alguém da área comercial que interprete detalhe, subtotal e total sem orientação adicional.

O modelo editável de Vendas inclui faturamento, ticket médio e análise de grupos. Ao adaptá-lo, use ISINSCOPE somente onde a hierarquia exigir uma apresentação própria e mantenha as medidas de negócio verificáveis. Guarde o roteiro de teste junto à versão do relatório. Assim, futuras mudanças no visual terão critérios concretos para aprovação.