Gerar todas as combinações possíveis

Como pintar uma célula, como formatar uma borda, funções básicas! Se você não sabe em que categoria postar a sua dúvida, escreva aqui que depois nós mudamos o tópico.
Regras do fórum
Sua dúvida foi respondida? Marque como RESOLVIDO em seus tópicos, usando o botão com marca verde. Imagem

Gerar todas as combinações possíveis

Mensagempor mikas » Seg Jun 16, 2014 7:43 am

Bom dia.

Vamos supor que uma loja trabalha com 3 tipos de Item, e que cada item tem 5 modelos diferentes, e quer saber qual as combinações possíveis sem repetir, existe alguma fórmula?

Imagem

*********************************************************************
Imagem

Substitui os items por números para melhor visualização.




Obrigado.
mikas
Membro
Membro
 
Mensagens: 20
Registrado em: Sex Abr 11, 2014 2:29 pm
Has thanked: 7 times
Have thanks: 0 time

{ SO_SELECT }

Re: Gerar todas as combinações possíveis

Mensagempor alexandrevba » Seg Jun 16, 2014 8:40 am

Bom dia!!

Sua imagem está com problemas, pois não é possível a visualização!


Att
alexandrevba
 

Re: Gerar todas as combinações possíveis

Mensagempor gtsalikis » Seg Jun 16, 2014 9:09 am

Vc já deu a resposta.

Para o primeiro exemplo:
=3*3*6
ou
=B7*G10*K7

E para o segundo:
=6*6*6
Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.

 Gilmar
gtsalikis
Ninja do Excel
Ninja do Excel
 
Mensagens: 2451
Registrado em: Sex Out 12, 2012 3:26 pm
Has thanked: 51 times
Have thanks: 1228 times

Re: Gerar todas as combinações possíveis

Mensagempor mikas » Seg Jun 16, 2014 11:26 am

alexandrevba escreveu:Bom dia!!

Sua imagem está com problemas, pois não é possível a visualização!


Att


Bom dia...
Ex:
Item A:
1,2,3,4
1,2,3,5
2,3,4,5

ItemB:
6,7,8,9
6,7,8,10
7,8,9,10

Item C
11,12,13,14
11,12,13,15
12,13,14,15

Eu quero saber se existe um jeito de montar as combinações automaticamente, todas as possíveis.

1,2,3,4,6,7,8,9,11,12,13,14
1,2,3,4,6,7,8,9,11,12,13,15
1,2,3,4,6,7,8,9,11,13,14,15....

E assim por diante
mikas
Membro
Membro
 
Mensagens: 20
Registrado em: Sex Abr 11, 2014 2:29 pm
Has thanked: 7 times
Have thanks: 0 time

Re: Gerar todas as combinações possíveis

Mensagempor mikas » Seg Jun 16, 2014 11:28 am

gtsalikis escreveu:Vc já deu a resposta.

Para o primeiro exemplo:
=3*3*6
ou
=B7*G10*K7

E para o segundo:
=6*6*6


Bom dia, eu me expressei errado.

No caso seria mostrar as combinações possiveis sem repetir:

1,2,3,4,6,7,8,9,11,12,13,14
1,2,3,4,6,7,8,9,11,12,13,15
1,2,3,4,6,7,8,9,12,13,14,15

Tipo, montar em linha as combinações.

Obrigado.
mikas
Membro
Membro
 
Mensagens: 20
Registrado em: Sex Abr 11, 2014 2:29 pm
Has thanked: 7 times
Have thanks: 0 time

Re: Gerar todas as combinações possíveis

Mensagempor Angeliton » Qui Fev 07, 2019 12:10 am

Código: Selecionar todos
Sub ListCombinations() 'de Colunas x linha em ordem


Dim col As New Collection
Dim c As Range, sht As Worksheet, res
Dim i As Long, arr, numCols As Long

    Set sht = ActiveSheet
    For Each c In sht.Range("A1:E1").Cells 'Escolher a quantidade de colunas para criar as combina??es A=1, E=5 colunas
        col.Add Application.Transpose(sht.Range(c, c.End(xlDown)))
        numCols = numCols + 1
    Next c

    res = Combine(col, "~~")

    For i = 0 To UBound(res)
        arr = Split(res(i), "~~")
        sht.Range("H1").Offset(i, 0).Resize(1, numCols) = arr
    Next i

End Sub


'create combinations from a collection of string arrays
Function Combine(col As Collection, SEP As String) As String()

    Dim rv() As String
    Dim pos() As Long, lengths() As Long, lbs() As Long, ubs() As Long
    Dim t As Long, i As Long, n As Long, ub As Long
    Dim numIn As Long, s As String, r As Long

    numIn = col.Count
    ReDim pos(1 To numIn)
    ReDim lbs(1 To numIn)
    ReDim ubs(1 To numIn)
    ReDim lengths(1 To numIn)
    t = 0
    For i = 1 To numIn  'calculate # of combinations, and cache bounds/lengths
        lbs(i) = LBound(col(i))
        ubs(i) = UBound(col(i))
        lengths(i) = (ubs(i) - lbs(i)) + 1
        pos(i) = lbs(i)
        t = IIf(t = 0, lengths(i), t * lengths(i))
    Next i
    ReDim rv(0 To t - 1) 'resize destination array

    For n = 0 To (t - 1)
        s = ""
        For i = 1 To numIn
            s = s & IIf(Len(s) > 0, SEP, "") & col(i)(pos(i)) 'build the string
        Next i
        rv(n) = s

        For i = numIn To 1 Step -1
            If pos(i) <> ubs(i) Then   'Not done all of this array yet...
                pos(i) = pos(i) + 1    'Increment array index
                For r = i + 1 To numIn 'Reset all the indexes
                    pos(r) = lbs(r)    '   of the later arrays
                Next r
                Exit For
            End If
        Next i
    Next n

    Combine = rv
End Function
Angeliton
Membro
Membro
 
Mensagens: 2
Registrado em: Qui Jun 28, 2018 5:55 pm
Has thanked: 2 times
Have thanks: 0 time

Re: Gerar todas as combinações possíveis

Mensagempor carlosrgs » Qui Fev 07, 2019 9:21 am

Achei uma planilha a algum tempo que trás a todas combinações possíveis de três conjuntos de dados.

Como você tem 3 tabelas

Determinei que:

1 = 01 02 03
2 = 01 02 04
3 = 01 02 05
....
7 = 06 07 08
....
18 = 13 14 15

então a macro busca as combinações de

1 7 13
2 8 14
3 9 15
4 10 16
5 11 17
6 12 18

E formatei.
_______________________________________________________________________________________________
Abraço!
Carlos Rafael
* Marque o tópico como Resolvido se foi solucionado seu problema.
Avatar do usuário
carlosrgs
Membro
Membro
 
Mensagens: 731
Registrado em: Qua Abr 15, 2015 1:30 pm
Has thanked: 111 times
Have thanks: 187 times


Voltar para Excel - O básico

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 4 visitantes