Cómo crear un diagrama de Sankey en Power BI: paso a paso
Este tutorial muestra cómo crear un diagrama de Sankey en Power BI para visualizar flujos entre categorías (por ejemplo, origen→destino). Un Sankey ayuda a entender dónde ocurren pérdidas o transferencias entre etapas y es útil en análisis de embudos, movimientos de producto o trayectorias de usuarios.
Prerequisitos
- Power BI Desktop instalado (versión actualizada)
- Datos con columnas de origen, destino y valor (CSV o Excel)
- Conexión a Internet para instalar un visual personalizado (opcional)
Paso 1: Preparar los datos
El Sankey necesita una tabla con, al menos, tres campos: Source (origen), Target (destino) y Value (valor del flujo). Crea un archivo CSV/Excel con filas que representen cada flujo. Ejemplo mínimo:
Source,Target,Value
Website,Trial,120
Trial,Active,80
Trial,Churn,40
Website,DirectPurchase,30
DirectPurchase,Active,25
Importa este archivo en Power BI: Home > Get data > Text/CSV o Excel. Carga los datos al modelo (Load).
Paso 2: Limpiar y modelar los datos en Power Query
Abre Power Query (Transform data) para garantizar que los tipos son correctos: Source y Target como Texto; Value como Decimal/Whole Number. Elimina filas en blanco y valores nulos. Si hay duplicados de pares Source-Target, agrega sumando Value para reducir cardinalidad, importante para el rendimiento del visual Sankey.
// Ejemplo de transformación en M (Group By) // En Power Query usa: Home > Group By let
Fonte = Csv.Document(File.Contents("fluxos.csv"),[Delimiter=",", Columns=3, Encoding=65001, QuoteStyle=QuoteStyle.None]),
Promoted = Table.PromoteHeaders(Fonte, [PromoteAllScalars=true]),
Changed = Table.TransformColumnTypes(Promoted,{{"Source", type text}, {"Target", type text}, {"Value", Int64.Type}}),
Agrupado = Table.Group(Changed, {"Source","Target"}, {{"Value","Sum","each List.Sum([Value])"}})
in
Agrupado
Paso 3: Instalar e insertar el visual Sankey
Power BI no incluye un visual Sankey por defecto, por eso instala un visual certificado del marketplace: Visualizations > ... (Get more visuals) > busca “Sankey” e instala uno (ej.: "Sankey (by Microsoft)" u otro certificado). Tras instalarlo, arrastra el visual a la página.
Paso 4: Configurar los campos del visual
En el panel Fields del visual Sankey, arrastra Source a Source/From, Target a Target/To y Value a Weight/Value (los nombres varían según el visual). El visual renderizará las conexiones; si no aparece, confirma tipos y valores positivos.
Paso 5: Mejorar la legibilidad
Ordena y filtra para no sobrecargar el gráfico. Usa slicers o filtros para reducir la dimensión (ej.: periodo, región). Ajusta colores y etiquetas en las propiedades del visual para mostrar Value en las conexiones y nombres en los nodos. Si el visual lo permite, activa tooltips para ver detalles al pasar el ratón.
Paso 6: Crear una medida de ejemplo (opcional)
Si tus datos tienen múltiples filas por flujo con una columna Date, puedes crear una medida para sumar Value filtrada por periodo. Ejemplo DAX sencillo:
Total Flow = SUM('Fluxos'[Value])
Usa esta medida en el campo Value del Sankey si el visual acepta medidas (no todos aceptan medidas y algunos requieren columna agregada).
Paso 7: Errores comunes y cómo resolver
- Gráfico vacío: confirma si hay valores positivos en Value y si Source/Target no tienen nulos. - Nodos duplicados con grafías diferentes: estandariza texto en Power Query (trim, lowercase) - Rendimiento lento: agrega pares Source-Target y reduce cardinalidad; filtra datos por periodo o muestra
Verificar el resultado
Valida que cada conexión muestra el valor correcto y que los totales tienen sentido (la suma de las salidas de un Source debe corresponder a la suma de las entradas para los Targets). Usa una tarjeta o tabla simple con SUM(Value) por Source y por Target para comparar números. Pasa el ratón sobre los flujos para ver tooltips con detalles.
Conclusión
Ahora tienes un diagrama de Sankey funcional en Power BI que permite visualizar flujos entre categorías. Próximos pasos: añadir más filtros, incorporar Date para animación temporal (usando Play Axis visual) y combinar con otros visuales para contexto. Consejo: comienza con datos agregados para validar la lógica antes de escalar a todo el dataset.