Como usar Bookmarks condicionais em Power BI com DAX
Este tutorial mostra como criar Bookmarks condicionais em Power BI usando medidas DAX e botões para controlar visuais e estados sem duplicar páginas. É útil para fazer interfaces interativas, reduzir duplicação de relatórios e evitar problemas de sincronização entre visuais.
Pré-requisitos
- Power BI Desktop (versão recente)
- Um ficheiro de dados simples (ex.: vendas com colunas Date, Product, Sales, Region)
- Conhecimentos básicos de DAX, Bookmarks e Selection Pane
Passo 1: Preparar os visuais que vão alternar
Cria os visuais que queres alternar com bookmarks. Exemplo: um gráfico de barras por Product e um cartão com KPI. Coloca ambos na mesma página e posiciona como desejas.
Passo 2: Criar uma tabela de controlo para estados
Vamos criar uma tabela simples no Power BI que representa os estados (por exemplo: "Visão Geral" e "Detalhe"). Esta tabela permite usar slicers ou medidas para controlar bookmarks condicionalmente.
States = DATATABLE("State", STRING, { {"Visão Geral"}, {"Detalhe"} })
Passo 3: Medida DAX para identificar o estado activo
Cria uma medida que devolve o estado seleccionado. Esta medida será usada em bookmarks condicionais ou em botões com formatação condicional.
SelectedState =
IF(
HASONEVALUE(States[State]),
VALUES(States[State]),
"Visão Geral" -- valor por defeito
)
Passo 4: Usar a medida para condicionar visuais (visível/invisível)
Em cada visual que queres mostrar/ocultar condicionalmente, usa a opção "Visual level filters" ou o Selection Pane combinado com medidas. Método simples: criar medidas booleanas que controlam um cartão transparente (overlay) ou usar a função de formatação condicional em propriedades visuais que suportem visibilidade.
Show_Barra = IF([SelectedState] = "Visão Geral", 1, 0)
Show_KPI = IF([SelectedState] = "Detalhe", 1, 0)
Exemplo prático: aplica Show_Barra como filtro visual onde Show_Barra = 1 para o gráfico de barras, e Show_KPI = 1 para o cartão KPI.
Passo 5: Criar Bookmarks reflectindo o estado base
Embora a lógica condicione visuais, convém ter bookmarks que guardem layout e filtros base. Cria dois bookmarks: "BM_VisaoGeral" e "BM_Detalhe". Para cada bookmark, define visuais e filtros no estado correspondente e desmarca "Data" e "Display" se não quiseres guardar filtros de selecção da página.
Passo 6: Criar botões e associar acções condicionais
Adiciona dois botões (ou imagens) com texto "Visão Geral" e "Detalhe". Para cada botão, escolhe a acção como "Bookmark" e aponta para o bookmark correspondente. Para tornar condicional a aparência do botão (por exemplo cor de fundo quando activo), usa formatação condicional baseada na medida SelectedState.
IsActive_Visao = IF([SelectedState] = "Visão Geral", 1, 0)
IsActive_Detalhe = IF([SelectedState] = "Detalhe", 1, 0)
Na formatação do botão escolhe "Fill" > fx > baseado na medida IsActive_Visao (cores para 1 e 0) — isto dá feedback visual do estado.
Passo 7: Sincronizar slicer ou criar bookmark action para actualizar State
Se usas um slicer baseado na tabela States, a selecção altera SelectedState e os visuais filtrados mudam automaticamente. Se preferes que os botões alterem o estado sem um slicer, cria bookmarks que além de guardar layout, guardam também a selecção do slicer (marca opção Data nos bookmarks) para forçar a mudança de SelectedState.
Verificar o resultado
Testa as interacções: selecciona "Visão Geral" no slicer ou clica no botão. O gráfico de barras deve aparecer e o KPI esconder-se; ao escolher "Detalhe" acontece o contrário. Confirma também as cores dos botões mudam conforme a condição e que não existem duplicações de páginas para cada estado.
Conclusão
Com esta técnica combinam-se DAX, uma pequena tabela de controlo, filtros visuais e Bookmarks para criar Bookmarks condicionais em Power BI sem multiplicar páginas. Próximos passos: acrescenta animações com Selection Pane ou controla visibilidade por medidas mais complexas (ex.: permissões). Dica: evita guardar alterações de layout indesejadas nos bookmarks — testa sempre com "View" desactivado.