Cómo usar Bookmarks condicionales en Power BI con DAX
Este tutorial muestra cómo crear Bookmarks condicionales en Power BI usando medidas DAX y botones para controlar visuales y estados sin duplicar páginas. Es útil para crear interfaces interactivas, reducir la duplicación de informes y evitar problemas de sincronización entre visuales.
Requisitos previos
- Power BI Desktop (versión reciente)
- Un archivo de datos sencillo (ej.: ventas con columnas Date, Product, Sales, Region)
- Conocimientos básicos de DAX, Bookmarks y Selection Pane
Paso 1: Preparar los visuales que van a alternar
Crea los visuales que quieres alternar con bookmarks. Ejemplo: un gráfico de barras por Product y una tarjeta con KPI. Coloca ambos en la misma página y posiciona como desees.
Paso 2: Crear una tabla de control para estados
Vamos a crear una tabla sencilla en Power BI que representa los estados (por ejemplo: "Visión General" y "Detalle"). Esta tabla permite usar slicers o medidas para controlar bookmarks condicionalmente.
States = DATATABLE("State", STRING, { {"Visão Geral"}, {"Detalhe"} })
Paso 3: Medida DAX para identificar el estado activo
Crea una medida que devuelve el estado seleccionado. Esta medida se usará en bookmarks condicionales o en botones con formato condicional.
SelectedState =
IF(
HASONEVALUE(States[State]),
VALUES(States[State]),
"Visão Geral" -- valor por defeito
)
Paso 4: Usar la medida para condicionar visuales (visible/invisible)
En cada visual que quieras mostrar/ocultar condicionalmente, usa la opción "Visual level filters" o el Selection Pane combinado con medidas. Método sencillo: crear medidas booleanas que controlen una tarjeta transparente (overlay) o usar la función de formato condicional en propiedades visuales que soporten visibilidad.
Show_Barra = IF([SelectedState] = "Visão Geral", 1, 0)
Show_KPI = IF([SelectedState] = "Detalhe", 1, 0)
Ejemplo práctico: aplica Show_Barra como filtro visual donde Show_Barra = 1 para el gráfico de barras, y Show_KPI = 1 para la tarjeta KPI.
Paso 5: Crear Bookmarks reflejando el estado base
Aunque la lógica condicione visuales, conviene tener bookmarks que guarden layout y filtros base. Crea dos bookmarks: "BM_VisaoGeral" y "BM_Detalhe". Para cada bookmark, define visuales y filtros en el estado correspondiente y desmarca "Data" y "Display" si no quieres guardar filtros de selección de la página.
Paso 6: Crear botones y asociar acciones condicionales
Agrega dos botones (o imágenes) con texto "Visión General" y "Detalle". Para cada botón, elige la acción como "Bookmark" y apunta al bookmark correspondiente. Para hacer condicional la apariencia del botón (por ejemplo color de fondo cuando está activo), usa formato condicional basado en la medida SelectedState.
IsActive_Visao = IF([SelectedState] = "Visão Geral", 1, 0)
IsActive_Detalhe = IF([SelectedState] = "Detalhe", 1, 0)
En el formato del botón elige "Fill" > fx > basado en la medida IsActive_Visao (colores para 1 y 0) — esto da feedback visual del estado.
Paso 7: Sincronizar slicer o crear bookmark action para actualizar State
Si usas un slicer basado en la tabla States, la selección altera SelectedState y los visuales filtrados cambian automáticamente. Si prefieres que los botones cambien el estado sin un slicer, crea bookmarks que además de guardar layout, guarden también la selección del slicer (marca opción Data en los bookmarks) para forzar el cambio de SelectedState.
Verificar el resultado
Prueba las interacciones: selecciona "Visión General" en el slicer o haz clic en el botón. El gráfico de barras debe aparecer y el KPI ocultarse; al elegir "Detalle" ocurre lo contrario. Confirma también que los colores de los botones cambian según la condición y que no existen duplicaciones de páginas para cada estado.
Conclusión
Con esta técnica se combinan DAX, una pequeña tabla de control, filtros visuales y Bookmarks para crear Bookmarks condicionales en Power BI sin multiplicar páginas. Próximos pasos: añade animaciones con Selection Pane o controla visibilidad mediante medidas más complejas (ej.: permisos). Consejo: evita guardar cambios de layout no deseados en los bookmarks — prueba siempre con "View" desactivado.