TREATAS
TREATAS aplica os valores de uma tabela como filtro sobre uma coluna de outra tabela. É a forma mais limpa de criar um relacionamento virtual, sem poluir o modelo com relacionamentos extras.
Meta do Período =CALCULATE( SUM( fMetas[ValorMeta] ), TREATAS( VALUES( dCalendario[AnoMes] ), fMetas[AnoMes] ), TREATAS( VALUES( dVendedor[Vendedor] ), fMetas[Vendedor] ))Medidas dinâmicas com SWITCH
Em vez de criar 4 páginas iguais mudando só o indicador, crie uma tabela de seleção e deixe o usuário escolher. Menos manutenção, mais liberdade.
-- dIndicador: tabela desconectada com Indicador (texto) e Ordem (número)Indicador Selecionado =VAR Escolha = SELECTEDVALUE( dIndicador[Indicador], "Receita" )RETURNSWITCH( Escolha, "Receita", [Receita Total], "Margem", [Margem Bruta], "Margem %", [Margem %], "Qtd Pedidos", [Qtd Pedidos], "Ticket Médio", [Ticket Médio], BLANK()) -- Formato dinâmico (Power BI moderno: Ferramentas de Medida → Formato Dinâmico)Formato do Indicador =SWITCH( SELECTEDVALUE( dIndicador[Indicador], "Receita" ), "Margem %", "0.0%", "Qtd Pedidos", "#,##0", "\R$ #,##0")Parâmetros de campo (Field Parameters)
Recurso nativo: Modelagem → Novo parâmetro → Campos. Ele cria uma tabela onde cada linha é um campo ou medida. O usuário troca via segmentação e o visual muda de dimensão — sem nenhum SWITCH.
- Use parâmetro de campo quando quiser trocar a DIMENSÃO do eixo (produto, região, vendedor).
- Use SWITCH quando quiser trocar a MEDIDA com lógica ou formatação própria.
- Você pode combinar os dois na mesma página: um seletor de eixo e um de indicador.
-- dFaixaTicket: tabela desconectada com Rotulo, Min, Max, OrdemPedidos na Faixa =VAR MinFaixa = SELECTEDVALUE( dFaixaTicket[Min] )VAR MaxFaixa = SELECTEDVALUE( dFaixaTicket[Max] )RETURNCALCULATE( [Qtd Pedidos], FILTER( VALUES( fVendas[NumeroPedido] ), VAR ValorPedido = CALCULATE( [Receita Total] ) RETURN ValorPedido >= MinFaixa && ValorPedido < MaxFaixa ))