Objetivo
Centralizar as informações necessárias para programar e controlar manutenções preventivas por equipamento.
Solução em Power BI para acompanhar o ciclo de manutenção preventiva, conectar histórico, horímetro atual e próxima revisão e orientar a priorização operacional dos equipamentos.
Captura completa com a visão geral do dashboard de preventivas.
Centralizar as informações necessárias para programar e controlar manutenções preventivas por equipamento.
Conectar cadastro, histórico de revisão, leitura atual de horímetro e previsão da próxima intervenção em uma leitura simples.
Um relatório operacional com filtros por local e máquina, medidas DAX centralizadas e destaque para as horas restantes.
Tela principal de programação e controle com filtros, identificação do equipamento e tabela operacional.
Visão complementar que reutiliza o contexto de local e máquina para aprofundar a análise financeira.
A dimensão dMaquinas organiza os dados cadastrais e os filtros principais. A tabela _Medidas concentra a camada analítica.
| Campo | Papel no dashboard |
|---|---|
| dMaquinas.Local | Localização do equipamento e filtro principal. |
| dMaquinas.Maquina | Entidade central de seleção e análise. |
| dMaquinas.Placa | Identificação operacional do equipamento. |
| dMaquinas.Modelo | Categoria e característica da máquina. |
Cada medida apresenta seu papel no relatório. Toque em Ver fórmula para consultar o DAX completo.
Data_Horimetro_AtualRetorna a data mais recente de abastecimento registrada no contexto selecionado.
Ver fórmula
Data_Horimetro_Atual =
CALCULATE(
MAX(TQN[Dt. Abastec.])
)Data_Ultima_PreventivaIdentifica a data de conclusão da preventiva mais recente.
Ver fórmula
Data_Ultima_Preventiva =
CALCULATE(
MAX(STJ[Real. Fim])
)Horas_Faltam_ProximaCalcula quantas horas faltam para a próxima preventiva e alimenta o alerta por cores.
Ver fórmula
Horas_Faltam_Proxima =
VAR _Proxima = [Horimetro_Proxima_Preventiva]
VAR _Atual = [Horimetro_Atual]
RETURN
IF(
ISBLANK(_Proxima) || ISBLANK(_Atual),
BLANK(),
_Proxima - _Atual
)Horimetro_AtualObtém a leitura mais recente do contador de horas da máquina.
Ver fórmula
Horimetro_Atual =
CALCULATE(
MAX(TQN[Contador 1]),
LASTDATE(TQN[Dt. Abastec.])
)Horimetro_Proxima_PreventivaSoma ao último horímetro o primeiro intervalo previsto no plano de manutenção.
Ver fórmula
Horimetro_Proxima_Preventiva =
VAR _HorimetroUltima = [Horimetro_Ultima_Preventiva]
-- Pega o intervalo do 1º passo da máquina (ex.: 500 h)
VAR _Intervalo =
CALCULATE(MIN(dPlanos[HorasAcumuladasNoCiclo]))
RETURN
IF(
ISBLANK(_HorimetroUltima),
BLANK(),
_HorimetroUltima + _Intervalo
)Horimetro_Ultima_PreventivaRecupera o maior horímetro registrado até a data da última preventiva da máquina.
Ver fórmula
Horimetro_Ultima_Preventiva =
VAR _DataPreventiva = [Data_Ultima_Preventiva]
VAR _MaquinaAtual = SELECTEDVALUE(dMaquinas[Maquina])
VAR _MaiorHorimetroNaData =
CALCULATE(
MAX(TQN[Contador 1]),
FILTER(
ALL(TQN),
TQN[Maquina] = _MaquinaAtual &&
TQN[Dt. Abastec.] <= _DataPreventiva
)
)
RETURN
_MaiorHorimetroNaDataNome_Proxima_PreventivaDefine a próxima revisão conforme o histórico e a sequência do ciclo preventivo.
Ver fórmula
Nome_Proxima_Preventiva =
VAR _MaquinaAtual = SELECTEDVALUE(dMaquinas[Maquina])
VAR _DataUltimaOS =
CALCULATE(
MAX(STJ[Real. Fim]),
STJ[Maquina] = _MaquinaAtual
)
VAR _UltimaSeqExecutada = [Ultima_Sequencia_Realizada]
RETURN
IF(
ISBLANK(_DataUltimaOS),
CALCULATE(
MAX(dPlanos[NomePreventiva]),
dPlanos[PassoCiclo] = 1
),
IF(
_UltimaSeqExecutada = 4,
CALCULATE(
MAX(dPlanos[NomePreventiva]),
dPlanos[PassoCiclo] = 1
),
VAR _DataUltimo4 =
CALCULATE(
MAX(STJ[Real. Fim]),
FILTER(
ALL(STJ),
STJ[Maquina] = _MaquinaAtual &&
STJ[Sequência] = 4 &&
STJ[Real. Fim] <= _DataUltimaOS
)
)
VAR _Qtd2Feitas =
CALCULATE(
COUNTROWS(STJ),
FILTER(
ALL(STJ),
STJ[Maquina] = _MaquinaAtual &&
STJ[Sequência] = 2 &&
STJ[Real. Fim] > _DataUltimo4 &&
STJ[Real. Fim] <= _DataUltimaOS
)
)
VAR _ProximoPasso =
IF(_Qtd2Feitas >= 3, 4, _Qtd2Feitas + 1)
RETURN
CALCULATE(
MAX(dPlanos[NomePreventiva]),
dPlanos[PassoCiclo] = _ProximoPasso,
ALL(dPlanos)
)
)
)Nome_Ultima_PreventivaTraduz a última sequência executada para o nome da preventiva correspondente.
Ver fórmula
Nome_Ultima_Preventiva =
VAR _UltimaSeq = [Ultima_Sequencia_Realizada]
RETURN
IF(
ISBLANK(_UltimaSeq),
"Sem Histórico",
CALCULATE(
MAX(dPlanos[NomePreventiva]),
dPlanos[PassoCiclo] = _UltimaSeq,
ALL(dPlanos)
)
)OS_Ultima_PreventivaRetorna a ordem de serviço vinculada à última preventiva.
Ver fórmula
OS_Ultima_Preventiva =
VAR _DataUltimaOS = [Data_Ultima_Preventiva]
RETURN
CALCULATE(
MAX(STJ[Ordem Serv.]),
STJ[Real. Fim] = _DataUltimaOS
)Ultima_Sequencia_RealizadaIdentifica a sequência de manutenção executada na última ordem de serviço.
Ver fórmula
Ultima_Sequencia_Realizada =
VAR _DataUltimaOS = [Data_Ultima_Preventiva]
RETURN
CALCULATE(
MAX(STJ[Sequência]),
STJ[Real. Fim] = _DataUltimaOS
)O valor de Horas_Faltam_Proxima recebe formatação condicional no Power BI. A cor permite reconhecer a prioridade sem precisar interpretar cada número individualmente.
O dashboard reúne informações operacionais de diferentes sistemas. No modelo do Power BI, a relação de equipamentos funciona como eixo central para conectar manutenção, abastecimentos e mão de obra.
Fornece o histórico das ordens de serviço, datas de realização, sequências executadas e preventivas concluídas por máquina.
Disponibiliza as datas de abastecimento e as leituras do contador, usadas para identificar o horímetro atual e recuperar o horímetro da última preventiva.
Complementa a análise com os registros de mão de obra associados aos serviços de manutenção e às respectivas ordens de serviço.
Concentra o cadastro das máquinas — local, identificação, placa e modelo — e sustenta os filtros aplicados em todo o relatório.