Como criar um gráfico de Sankey em Power BI: passo a passo
Este tutorial mostra como criar um gráfico de Sankey em Power BI para visualizar fluxos entre categorias (por exemplo, origem→destino). Um Sankey ajuda a perceber onde ocorrem perdas ou transferências entre etapas e é útil em análises de funis, movimentos de produto ou trajectórias de utilizadores.
Pré-requisitos
- Power BI Desktop instalado (versão actualizada)
- Dados com colunas de origem, destino e valor (CSV ou Excel)
- LigaçãO à Internet para instalar um visual personalizado (opcional)
Passo 1: Preparar os dados
O Sankey precisa de uma tabela com, pelo menos, três campos: Source (origem), Target (destino) e Value (valor do fluxo). Cria um ficheiro CSV/Excel com linhas que representem cada fluxo. Exemplo mínimo:
Source,Target,Value
Website,Trial,120
Trial,Active,80
Trial,Churn,40
Website,DirectPurchase,30
DirectPurchase,Active,25
Importa este ficheiro em Power BI: Home > Get data > Text/CSV ou Excel. Carrega os dados para o modelo (Load).
Passo 2: Limpar e modelar os dados no Power Query
Abre o Power Query (Transform data) para garantir que os tipos estão correctos: Source e Target como Texto; Value como Decimal/Whole Number. Remove linhas em branco e valores nulos. Se houver duplicados de pares Source-Target, agrega somando Value para reduzir cardinalidade, importante para desempenho do visual Sankey.
// Exemplo de transformação em M (Group By) // Em 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
Passo 3: Instalar e inserir o visual Sankey
Power BI não inclui um visual Sankey por defeito, por isso instala um visual certificado do marketplace: Visualizations > ... (Get more visuals) > procura “Sankey” e instala um (ex.: "Sankey (by Microsoft)" ou outro certificado). Depois de instalado, arrasta o visual para a página.
Passo 4: Configurar os campos do visual
No painel Fields do visual Sankey, arrasta Source para Source/From, Target para Target/To e Value para Weight/Value (os nomes variam consoante o visual). O visual irá renderizar as ligações; se não aparecer, confirma tipos e valores positivos.
Passo 5: Melhorar a legibilidade
Ordena e filtra para não sobrecarregar o gráfico. Usa slicers ou filtros para reduzir a dimensão (ex.: período, região). Ajusta cores e rótulos nas propriedades do visual para mostrar Value nas ligações e nomes nos nós. Se o visual suportar, activa tooltips para ver detalhes ao passar o rato.
Passo 6: Criar uma medida de exemplo (opcional)
Se os teus dados tiverem múltiplas linhas por fluxo com uma coluna Date, podes criar uma medida para somar Value filtrada por período. Exemplo DAX simples:
Total Flow = SUM('Fluxos'[Value])
Usa esta medida no campo Value do Sankey se o visual aceitar medidas (nem todos aceitam medidas e alguns exigem coluna agregada).
Passo 7: Erros comuns e como resolver
- Gráfico vazio: confirma se há valores positivos em Value e se Source/Target não têm nulos. - Nós duplicados com grafias diferentes: standardiza texto no Power Query (trim, lowercase) - Performance lenta: agrega pares Source-Target e reduz cardinalidade; filtra dados por período ou amostra
Verificar o resultado
Valida que cada ligação mostra o valor correcto e que os totais fazem sentido (soma das saídas de um Source deve corresponder à soma das entradas para os Targets). Usa um cartão ou tabela simples com SUM(Value) por Source e por Target para comparar números. Passa o rato sobre os fluxos para ver tooltips com detalhes.
Conclusão
Agora tens um gráfico de Sankey funcional em Power BI que permite visualizar fluxos entre categorias. Próximos passos: adicionar mais filtros, incorporar Date para animação temporal (usando Play Axis visual) e combinar com outros visuais para contexto. Dica: começa com dados agregados para validar a lógica antes de escalar para todo o dataset.