(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa

Como criar um gráfico de Gantt no Power BI: passo a passo

João Barros 23 de October de 2026 4 min de leitura

Este tutorial mostra como criar um gráfico de Gantt no Power BI para visualizar tarefas, datas de início e fim, duração e percentagem de conclusão — útil para gestão de projectos e planeamento. Explicarei porque um Gantt ajuda a perceber dependências e progresso e como montar o visual com dados simples e medidas DAX.

Pré-requisitos

  • Power BI Desktop instalado
  • Uma tabela com colunas: Task, StartDate, EndDate, PercentComplete
  • Conhecimentos básicos de Power Query e DAX

Passo 1: Preparar os dados (Power Query)

Importa a tua tabela para o Power BI Desktop (Excel, CSV ou outra fonte). Verifica que StartDate e EndDate estão em formato data. Se necessário, usa o Power Query para transformar textos em datas e eliminar linhas vazias.

// Exemplo em M no editor do Power Query para garantir tipos
let
  Fonte = Excel.Workbook(File.Contents("C:\projeto\tasks.xlsx"), null, true),
  Tabela = Fonte{[Name="Tasks"]}[Data],
  Tipo = Table.TransformColumnTypes(Tabela,{{"Task", type text}, {"StartDate", type date}, {"EndDate", type date}, {"PercentComplete", type number}})
in
  Tipo

Passo 2: Criar colunas de auxílio (Duração e Ordem)

No separador Modelação cria uma coluna calculada para a duração em dias e outra para ordenar as tarefas (opcional). A duração é necessária para representar a largura das barras no Gantt.

// Coluna Duracao (dias)
Duracao = DATEDIFF('Tasks'[StartDate], 'Tasks'[EndDate], DAY)

// Coluna Ordem (exemplo por StartDate para ordenar o eixo)
OrdemTarefa = RANKX(ALL('Tasks'), 'Tasks'[StartDate], , ASC, DENSE)

Passo 3: Construir o eixo horizontal (datas contínuas)

Um Gantt precisa de um eixo de datas contínuas. Se não tiveres uma tabela de datas, cria uma simples usando DAX. Esta tabela ajuda a alinhar barras correctamente no eixo temporal.

// Tabela Calendario básica
Calendario =
ADDCOLUMNS(
  CALENDAR(MIN('Tasks'[StartDate]), MAX('Tasks'[EndDate])),
  "Ano", YEAR([Date]),
  "Mes", MONTH([Date])
)

Passo 4: Criar medidas para iniciar o Gantt

Cria medidas que calculam a posição de início e a duração em formato numérico para usares no visual (alguns visuais custom ou a técnica com gráfico de barras empilhadas).

// Início em número de dias desde a data mínima (para gráfico empilhado)
DataMin = MIN('Calendario'[Date])

StartOffset =
DATEDIFF(MIN('Calendario'[Date]), MIN('Tasks'[StartDate]), DAY)

// Alternativa: medida por task usando SELECTEDVALUE
StartOffsetTask =
VAR d0 = CALCULATE(MIN('Tasks'[StartDate]), ALLSELECTED())
RETURN DATEDIFF(MIN('Calendario'[Date]), d0, DAY)

Passo 5: Criar o visual Gantt com um gráfico de barras empilhadas (técnica sem visual custom)

Se não quiseres instalar um visual custom, usa um gráfico de barras empilhadas com duas séries: uma série invisível para o offset (início) e outra para a duração. Configura o eixo y com Task ordenada pela coluna Ordem.

  1. Inserir um gráfico de Barras Empilhadas.
  2. No eixo 'Eixo' coloca Task (usa Ordenar por coluna OrdemTarefa).
  3. Na 'Legenda' deixa em branco; nos 'Valores' adiciona: StartOffset como a primeira série e Duracao como a segunda série.
  4. Formatação: para a primeira série define cor como transparente (ou 0% opacidade). A segunda série representa a barra do Gantt.
  5. Active os rótulos de dados para mostrar PercentComplete ou cria um marcador visual adicional.

Passo 6: Mostrar PercentComplete dentro do Gantt

Podes representar o progresso com um segundo segmento de barra dentro da duração (empilhamento interno) ou com rótulos. Cria medidas para DuracaoCompleta e DuracaoConcluida e usa-as como séries empilhadas.

// DuracaoConcluida em dias
DuracaoConcluida = SUMX('Tasks', 'Tasks'[Duracao] * 'Tasks'[PercentComplete] / 100)

// DuracaoRestante
DuracaoRestante = SUM('Tasks'[Duracao]) - [DuracaoConcluida]

Depois, no gráfico empilhado põe: Offset (invisível), DuracaoConcluida (cor distinta) e DuracaoRestante (cor base). Assim vês uma barra com a parcela concluída.

Verificar o resultado

Confirma que as barras começam nas datas correctas comparando StartDate com o ponto inicial no eixo. Verifica que a soma de DuracaoConcluida e DuracaoRestante corresponde a Duracao para cada tarefa. Erros comuns: datas com horas (converter para date), durações negativas (EndDate anterior a StartDate) ou campos não ordenados (usar OrdemTarefa).

Conclusão

Agora tens um Gantt funcional no Power BI sem necessidade de visuals custom, com Start, End, duração e progresso visualizáveis. Próximos passos: experimentar um visual Gantt do AppSource para recursos avançados (dependências, milestones) ou criar tooltips personalizados com mais detalhe. Dica: valida sempre as datas e usa uma tabela de Calendario para evitar desalinhamentos — que tarefa gostavas de calendarizar primeiro?