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

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
Por cbaur
Posts
#73698
Olá!
Gostaria de uma dica de como fazer no VBA do excel um código que monte as combinações possíveis de alguns números como no exemplo abaixo:
São dez colunas com cinco linhas, e quero montar todas as combinações possíveis.

02 01 04 10 02 45 34 08 23 21
07 09 45 22 04 53 42 23 28 25
22 30 57 32 08 69 64 28 37 78
56 33 88 45 48 73 75 38 46 87
67 87 91 66 93 84 83 44 50 99

Combinações:
02 01 04 10 02 45 34 08 23 21
02 01 04 10 02 45 34 08 23 25
02 01 04 10 02 45 34 08 23 78
02 01 04 10 02 45 34 08 23 87
02 01 04 10 02 45 34 08 23 99
02 01 04 10 02 45 34 08 28 21
02 01 04 10 02 45 34 08 28 25
02 01 04 10 02 45 34 08 28 78
02 01 04 10 02 45 34 08 28 87
02 01 04 10 02 45 34 08 28 99
02 01 04 10 02 45 34 08 37 21
02 01 04 10 02 45 34 08 37 25
| | | | | | | | | |
67 87 91 66 93 84 83 44 50 99
Por osvaldomp
#73706
Como serão as combinações após a combinação abaixo ?

2 1 4 10 2 45 34 8 50 99
Por cbaur
Posts
#73708
Olá, Osvaldo!
A ideia é combinar cada número da linha conforme a variação de cada coluna.
Anexo eu coloquei uma planilha que exemplifica o que desejo.
Normalmente, eu faço isso manualmente. Mas é muito trabalhoso. Por isso eu queria automatizar esse processo.
Observe que cada coluna vai variando conforme vai se combinando as linhas.
A ideia e pegar os números da primeira linha e variar a coluna 10, depois varia a coluna 9 e 10, depois varia a coluna 8, 9 e 10, e assim sucessivamente, até chegar na última linha, que seria a enésima combinação.
Não sei se consegui me expressar melhor agora.

Obs.: eu sei que nesta matriz de 5 linhas x 10 colunas vou ter um número máximo de 5^10 = 9.765.625 combinações possíveis.

Não haverá nenhuma outra combinação após 2 1 4 10 2 45 34 8 50 99, pois esta seria a última combinação possível.
Você não está autorizado a ver ou baixar esse anexo.
Por osvaldomp
#73711
cbaur escreveu: 25 Out 2023 às 13:10 "Normalmente, eu faço isso manualmente."
Você faz mais de 9 milhões de combinações manualmente? Quanto tempo leva ? Com que frequência você faz isso?

"Não haverá nenhuma outra combinação após 2 1 4 10 2 45 34 8 50 99, pois esta seria a última combinação possível."
Essa combinação que coloquei não é a última possível, e sim é a última que trata das colunas 10 e 9, e a combinação seguinte irá incluir a coluna 8, que você não informou como deseja fazer.
No arquivo anexo coloquei na sua planilha as observações e a sequência de combinações que eu suponho que você quer.

Curiosidade: qual a finalidade de se escrever 9+ milhões de combinações? Qual é o uso disso?
Você não está autorizado a ver ou baixar esse anexo.
Por cbaur
Posts
#73718
Bom dia, Osvaldo!

Eu sei que é curioso fazer 9M de combinações.
Mas na verdade quando uma sequência de combinação apresenta uma repetição de um ou mais números esta combinação eu descarto. No fim, de 9M isso cai para algo perto de 50 a 100k combinações.
Eu tenho aqui, no meu trabalho, um equipamento que faz análise de papel e celulose e que me fornece algumas informações. Estou fazendo um projeto de projeção de defeito conforme os dados que o equipamento me fornece. Com isso posso verificar, com alguma antecedência, possíveis desvios e atuar rapidamente.
A ideia é, com estatística, projetar algum defeito para o futuro.

Quanto as observações que colocaste na planilha, é exatamente aquela a sequencia que necessito.

Obrigado pelo apoio!
Por osvaldomp
#73723
Grato pelas explicações. Me parece um trabalho de alto nível.
Há décadas essa sua empresa (CMPC) tem cultivo próprio de árvores aqui próximo à cidade de S.Paulo. E as árvores cultivadas são utilizadas como matéria prima. Possivelmente o cultivo próprio é por razões econômicas, mas o efeito principal e elogiável é a convivência com a Natureza ao invés de simplesmente explorar a Natureza (passar a boiada).

Mais uma dúvida. Concluídas as combinações com a primeira linha (esta ~~~> 2 1 4 10 2 45 34 8 23 21 )
(e fazendo uma projeção dessas combinações com a primeira linha, a última combinação seria essa abaixo),
2 87 4 10 2 45 34 8 23 21
2 87 4 10 2 45 34 8 23 25
2 87 4 10 2 45 34 8 23 78
2 87 4 10 2 45 34 8 23 87
2 87 4 10 2 45 34 8 23 99

as combinações seguintes envolverão a segunda linha? Feitas as combinações com a segunda, as seguintes envolverão a terceira? Depois a quarta e a quinta?

Se sim, você poderia fazer manualmente e colocar aqui no tópico as duas ou três combinações iniciais com a linha 2 ?
E as duas ou três iniciais com a linha 3 ?
Por cbaur
Posts
#73725
Eu enviei no arquivo anexo, um exemplo de como seria as combinações com apenas duas, três ou quatro linhas.
Com duas linhas eu tenho um total de 1024 combinações.
Com três linhas temos 59049 combinações.
Com quatro linhas temos 1048576 combinações.
A ideia é, então, expandir o exemplo para três, quatro ou cinco linhas, com o mesmo pensamento do de duas linhas.
Não é tão complexo, mas é um pouco difícil de explicar a lógica. Rsssss...
Você não está autorizado a ver ou baixar esse anexo.
Avatar do usuário
Por Foxtri
Posts Avatar
#73727
Boa noite
Segue uma opção
Seria Viável ???
Até
Foxtri
Você não está autorizado a ver ou baixar esse anexo.
Por cbaur
Posts
#73730
Olá, Foxtri!
Agradeço pelo apoio, mas não é muito viável, pois como são 5 linhas x 10 colunas isso me dará mais de 9M de combinações. A planilha iria se tornar lenta e um arquivo gigantesco.
Eu até já usei um processo parecido para gerar combinações com menor número de combinações total.
Eu queria mesmo é um código VBA para realizar estas combinações. Eu só não estou conseguindo pensar em uma lógica simples e rápida para gerar estas combinações.
Carlos Baur.
Avatar do usuário
Por Foxtri
Posts Avatar
#73731
Boa tarde.
Fiz um exemplo em VBA.
Veja se ajuda.(Não testei com 4 e nem com 5).
Até
Foxtri
Você não está autorizado a ver ou baixar esse anexo.
Por osvaldomp
#73738
cbaur escreveu: 25 Out 2023 às 13:10 Olá, Osvaldo!
Obs.: eu sei que nesta matriz de 5 linhas x 10 colunas vou ter um número máximo de 5^10 = 9.765.625 combinações possíveis.
No arquivo anexo coloquei um código que gera as 9.765.625 combinações desejadas.
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