Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Dúvidas sobre cálculos, funções simples e aninhadas, fórmulas matriciais, etc.
#22070
Bom dia a todos.

Tenho uma planilha grande que abastece um calendário de manutenções veiculares.

Essa planilha é abastecida por um arquivo texto com campos separados por ";" que é exportado por outro programa. Esse arquivo texto é atualizado diariamente.

A planilha então pega os dados desse arquivo texto e calcula, para cada um de centenas de veículos, próxima Manutenção Preventiva, próximo Plano de Lubrificação, etc, baseado no horímetro atual e horímetros dos últimos realizados.

Bom, minha questão é que a data que será a próxima manutenção é baseado numa média horária que a máquina fez desde a última manutenção.

Funciona até certo ponto entretanto, pois a máquina pode ter ficado 2 meses sem trabalhar e depois estar metendo pau direto, 8 horas por dia. E daí minha planilha, onde a média é 2 h por dia, vai prever a data errada.


O que seria ideal? Uma média baseada nas últimas atualizações.

Mas como vou manter as últimas atualizações para calcular essa média?

Existe algum meio do Excel manter um histórico de uma coluna por exemplo? Desse modo quando eu inserir uma atualização, a coluna dos horímetros da atualização anterior seja copiada para uma nova coluna automaticamente, e fique lá, para cálculo das médias baseado nas últimas atualizações? E que essa copia das atualizações anteriores ocorra numas 3-4 colunas pelo menos (ou seja, histórico dos últimos 3-4 horímetros)??
#22071
Como é atualmente (uma pequena parte da planilha):
Imagem
1 - colunas B até G puxam dados do arquivo TXT exportado pelo programa externo. (utilizando misturas de PROCV, CORRESP, DESLOC e INDIRETO+CONCATENAR)

2 - coluna L (quanto falta para a próxima manutenção) em horas também é puxada do TXT

3 - coluna H (Próxima PL/PM): soma o horímetro atual + horas que faltam para próxima manutenção, sabendo assim o horímetro com que deve ocorrer a proxima manutenção

4 - coluna I (Dias): quantos dias úteis se passaram desde a coluna G (última manutenção)

5 - # Horas: Horímetro atual menos último horímetro

6 - Horas por Dia: média de horas por dia do veículo calculada com colunas J/I (diferença de horas desde última manutenção, digamos 100, dividido pelos dias desde a última manutenção, digamos 50. Média de 2 horas por dia.

Problema: digamos que nestes últimos 50 dias, a máquina tenha ficado parada 25 dias e tenha feito essas 100 horas nos últimos 25. Nos primeiros 25 dias a média foi 0 horas diárias, e nos últimos 25 dias a média foi 4 horas diárias!
Digamos também que a máquina tem que parar pra revisão com 112 horas

A média horária será a mesma, mas a previsão de data estará errada. A Data Aproximada é baseada nos dias úteis das colunas L/K. Isto é, horas que faltam para a revisão (12 horas nesse exemplo) divididos pela média diária de horas.

Estamos usando a média de 2 horas por dia (100 horas em 50 dias). Portanto, serão necessários 6 dias úteis pra completar essas 12 horas.

Mas não. A máquina está trabalhando atualmente 4 horas diárias. Ou seja, em somente 3 dias completará 12 horas!
#22072
O que quero que aconteça... mas de maneira automática

Imagem

No momento que eu atualizo as planilha de abastecimento com os novos valores de horímetros (coluna E), etc, gostaria que automaticamente os valores anteriores fossem copiados para N. E os valores de N para O. E de O para P.

Criando assim um histórico do uso da máquina nas últimas 3-4 atualizações. Então em R é feito uma média de quanto a máquina trabalhou nas últimas 3-4 atualizações, não nos últimos 100 dias!


O problema é que não tenho nem idéia de como "copiar" os valores automaticamente no Excel, sem que essa cópia seja igual sempre aos valores atuais. Ou seja, como criar esse histórico de últimos valores...
#22091
Se quiser experimentar uma solução via macro, o código abaixo pode ser um ponto de partida.
Antes, coloque a relação das placas dos veículos/máquinas na coluna 'W' e as respectivas leituras dos horímetros na coluna 'X'.
Talvez você queira armazenar mais de uma leitura para cada veículo/máquina, aí usaria as colunas à direita de 'X', nesse caso defina se quer replicar em 'N' a leitura mais recente ou a mais antiga.
Se você achar este caminho viável mas tiver dificuldade, disponibilize uma amostra do seu arquivo (arquivo Excel, não print de planilha).
As operações pretendidas que o código efetue estão comentadas no código, cole-o em um módulo comum que os comentários ficarão destacados com fonte na cor verde.
Código: Selecionar todos
Sub Teste1()
 Dim k As Long, v As Long
  For k = 2 To Cells(Rows.Count, 2).End(3).Row 'percorre as placas na coluna 'B'
   Cells(k, 15).Resize(, 2).Value = Cells(k, 14).Resize(, 2).Value 'copia de 'N:O' para 'O:P'
   v = [W:W].Find(Cells(k, 15), lookat:=xlWhole).Row 'busca a placa na coluna 'W'
   Cells(k, 14) = Cells(v, 24) 'replica na coluna 'N' a leitura do horímetro antes armazenada na coluna 'X'
   Cells(v, 24) = Cells(k, 5) 'substitui a leitura anterior na coluna 'X' pela nova da coluna 'E'
  Next k
End Sub
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord