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.
  • Avatar do usuário
Por filipemec
#17812
bom dia,

Estou necessitando de uma formula (ou programa em VBA) para realizar a roteirização de entregas em varios clientes.

Tenho uma planilha com uma matriz contendo em torno de 204 linhas e colunas, segue exemplo abaixo:

a primeira coluna a representa os clientes em relação a saída, e a primeira linha representa os mesmos clientes, mas em relação a chegada. e a combinação em colunas e linhas é o tempo entre os clientes.

Imagem

estou precisando de procedimento que eu digitando os clientes numa coluna, na coluna ao lado ele (de acordo alguns critérios e com a matriz de dados) organize a ordem dos clientes.

se tiverem alguma duvida quanto ao que estou precisando é só falar.

Desde ja agradeço a atenção.
Por filipemec
#17886
DJunqueira escreveu:Veja se a planilha anexa te ajuda de alguma forma.
Ola, baixei a planilha mas não consegui faze-la funcionar. E tambem não conseguir entender o funcionamento dela.

No entanto agradeço a ajuda.
Avatar do usuário
Por DJunqueira
Avatar
#17900
Olá filipemec, talvez eu tenha deixado vc muito no escuro s/ o funcionamento da planilha, assim sendo vou tentar explicar melhor.

Na aba [Planilha1] vc tem dois endereços s/ o assunto, o primeiro descreve a solução q utilizei nas matrizes.
Na aba [Melhor rota] vc deve usar o novo botão 'Prepara aba para cálculo' depois q usar o botão 'Calcular melhor rota' p/ realizar o cálculo novamente.

O q a planilha faz na aba [Melhor rota]?
Ela calcula o ponto inicial, q é o mais distante, e a partir dele vai selecionando e marcando os novos pontos de visitação até completar o circuito em todos os pontos. Cada ponto marcado com cor representa a distância da melhor rota a ser percorrida.

Ao final as colunas J e K apresentam respectivamente a ordem a ser seguida e a respectiva distância com a somatória no final. No exemplo da planilha a ordem é 5;3;4;2;7;6;1 e a somatória das distâncias 159.

Ressalto mais uma vez (além do aviso na planilha) q o intervalo A1:H8 deve estar selecionado antes de clicar no botão 'Calcular melhor rota'.

Segue anexo a planilha com o novo botão 'Prepara aba para cálculo'.
Você não está autorizado a ver ou baixar esse anexo.
Por jpomaga
Posts
#17913
DJunqueira, fantástica sua solução. Não sei quanto ao filipemec, mas eu fiquei satisfeito dado o problema proposto. :D
Vejo várias aplicações no meu dia a dia. Saberia dizer se neste caso poderíamos usar o SOLVER? Não vi se ele informou restrições..
Por filipemec
#17925
Boa tarde DJunqueira,

Obrigado pelo detalhamento, agora entendi o principio de funcionamento.

No entanto tenho alguns questionamentos.

1. Tenho um banco de dados com mais de 200 clientes, e a quantidade de clientes por rota varia, esta sua solução atende a esta variação?

2. como eu faria a adição de restrições? exemplo: cliente 3 tem sempre que ser a primeira entrega, cliente 5 sempre a ultima entrega.

OBS.: Perdão pela quantidade de questionamentos, meu conhecimento em VBA é quase nulo rsrs...

desde já agradeço a ajuda.



DJunqueira escreveu:Olá filipemec, talvez eu tenha deixado vc muito no escuro s/ o funcionamento da planilha, assim sendo vou tentar explicar melhor.

Na aba [Planilha1] vc tem dois endereços s/ o assunto, o primeiro descreve a solução q utilizei nas matrizes.
Na aba [Melhor rota] vc deve usar o novo botão 'Prepara aba para cálculo' depois q usar o botão 'Calcular melhor rota' p/ realizar o cálculo novamente.

O q a planilha faz na aba [Melhor rota]?
Ela calcula o ponto inicial, q é o mais distante, e a partir dele vai selecionando e marcando os novos pontos de visitação até completar o circuito em todos os pontos. Cada ponto marcado com cor representa a distância da melhor rota a ser percorrida.

Ao final as colunas J e K apresentam respectivamente a ordem a ser seguida e a respectiva distância com a somatória no final. No exemplo da planilha a ordem é 5;3;4;2;7;6;1 e a somatória das distâncias 159.

Ressalto mais uma vez (além do aviso na planilha) q o intervalo A1:H8 deve estar selecionado antes de clicar no botão 'Calcular melhor rota'.

Segue anexo a planilha com o novo botão 'Prepara aba para cálculo'.
Avatar do usuário
Por DJunqueira
Avatar
#17935
Olá filipemec, q bom q desta vez vc entendeu o funcionamento. Adicionei essa explicação na planilha p/ caso mais alguém precise dela.

Quanto as suas perguntas; a planilha fornece um roteiro, penso q vc poderia tranquilamente percorrer partes dele começando e acabando onde vc quiser desde q siga a ordem.

Caso vc queira calcular uma rota ótima p/ apenas 10 clientes, monte uma matriz com as distâncias destes clientes e depois rode a macro, comece por onde vc quiser q o resultado será basicamente o mesmo. No final das contas o melhor trajeto acaba sendo sempre um percurso sem cruzamentos, quase como um círculo, veja no endereço abaixo um teste com vários algorítimos.
https://www.youtube.com/watch?v=q6fPk0--eHY

Uma solução alternativa p/ poucos endereços é usar uma função do Excel WEBSERVICE() q solicita ao Google maps a melhor rota diretamente da planilha, como vc pode ver na planilha anexa na aba [hoteis info].
Você não está autorizado a ver ou baixar esse anexo.
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