Note: The other languages of the website are Google-translated. Back to English

Como listar ou gerar todas as combinações possíveis no Excel?

Digamos que tenho as duas colunas de dados a seguir e, agora, desejo gerar uma lista de todas as combinações possíveis com base nas duas listas de valores conforme a captura de tela à esquerda mostrada. Talvez você possa listar todas as combinações uma a uma se houver poucos valores, mas, se houver várias colunas com vários valores necessários para listar as combinações possíveis, aqui estão alguns truques rápidos que podem ajudá-lo a lidar com este problema no Excel .

Liste ou gere todas as combinações possíveis de duas listas com fórmula

Liste ou gere todas as combinações possíveis de três ou mais listas com código VBA

Liste ou gere todas as combinações possíveis de várias listas com um recurso poderoso


Liste ou gere todas as combinações possíveis de duas listas com fórmula

A seguinte fórmula longa pode ajudá-lo a listar todas as combinações possíveis de dois valores de lista rapidamente, faça o seguinte:

1. Insira ou copie a fórmula abaixo em uma célula em branco, neste caso, irei inseri-la na célula D2 e, em seguida, pressione Entrar chave para obter o resultado, consulte a imagem:

=IF(ROW()-ROW($D$2)+1>COUNTA($A$2:$A$5)*COUNTA($B$2:$B$4),"",INDEX($A$2:$A$5,INT((ROW()-ROW($D$2))/COUNTA($B$2:$B$4)+1))&"-"&INDEX($B$2:$B$4,MOD(ROW()-ROW($D$2),COUNTA($B$2:$B$4))+1))

Nota: Na fórmula acima, $ A $ 2: $ A $ 5 é o intervalo dos valores da primeira coluna, e $ B $ 2: $ B $ 4 é o intervalo dos valores da segunda lista que você deseja listar todas as suas combinações possíveis, o $ D $ 2 é a célula em que você colocou a fórmula, você pode alterar as referências da célula conforme sua necessidade.

2. Em seguida, selecione a célula D2 e ​​arraste a alça de preenchimento até as células até obter as células em branco, e todas as combinações possíveis foram listadas com base nos valores das duas listas. Veja a imagem:


Liste ou gere todas as combinações possíveis de três ou mais listas com código VBA

Talvez a fórmula acima seja um tanto difícil de aplicar; se houver dados de várias colunas, será difícil modificá-la. Aqui, apresentarei um código VBA para lidar com isso rapidamente.

1. Segure o ALT + F11 chaves para abrir o Microsoft Visual Basic para Aplicações janela.

2. Clique inserção > Móduloe cole o seguinte código no Módulo Janela.

Código VBA: Gere todas as combinações de 3 ou várias colunas

Sub ListAllCombinations()
'Updateby Extendoffice
Dim xDRg1, xDRg2, xDRg3 As Range
Dim xRg  As Range
Dim xStr As String
Dim xFN1, xFN2, xFN3 As Integer
Dim xSV1, xSV2, xSV3 As String
Set xDRg1 = Range("A2:A5")  'First column data
Set xDRg2 = Range("B2:B4")  'Second column data
Set xDRg3 = Range("C2:C4")  'Third column data
xStr = "-"   'Separator
Set xRg = Range("E2")  'Output cell
For xFN1 = 1 To xDRg1.Count
    xSV1 = xDRg1.Item(xFN1).Text
    For xFN2 = 1 To xDRg2.Count
        xSV2 = xDRg2.Item(xFN2).Text
      For xFN3 = 1 To xDRg3.Count
        xSV3 = xDRg3.Item(xFN3).Text
        xRg.Value = xSV1 & xStr & xSV2 & xStr & xSV3
        Set xRg = xRg.Offset(1, 0)
       Next
    Next
Next
End Sub
Nota: No código acima, A2: A5, B2: B4, C2: C4 são o intervalo de dados que você deseja usar, E2 é a célula de saída em que você deseja localizar os resultados. Se você deseja obter todas as combinações de mais colunas, altere e adicione outros parâmetros ao código conforme sua necessidade.

3. Então aperte F5 para executar este código, e todas as combinações das 3 colunas serão geradas de uma vez, veja a captura de tela:


Liste ou gere todas as combinações possíveis de várias listas com um recurso poderoso

Se houver várias listas, os valores precisam ser listados com as combinações possíveis, talvez seja difícil para você modificar o código. Aqui, posso recomendar uma ferramenta poderosa - Kutools for Excel, contém um recurso útil Listar todas as combinações que pode listar rapidamente todas as combinações possíveis com base em listas de dados fornecidas.

Tips:Para aplicar isso Listar todas as combinações recurso, em primeiro lugar, você deve baixar o Kutools for Excele, em seguida, aplique o recurso de forma rápida e fácil.

Depois de instalar Kutools for Excel, por favor, faça o seguinte:

1. Clique Kutools > inserção > Listar todas as combinações, veja a captura de tela:

2. No Listar todas as combinações caixa de diálogo, faça as operações conforme a demonstração abaixo:

3. Então, todos os valores e separadores especificados foram listados na caixa de diálogo, veja a captura de tela:

4.E então clique Ok botão, e uma caixa de prompt aparecerá para lembrá-lo de selecionar uma célula para gerar o resultado, veja a captura de tela:

5. Clique OK, todas as combinações possíveis com base nas listas fornecidas foram geradas na planilha conforme a seguinte captura de tela mostrada:

Clique para baixar o Kutools para Excel agora!


Mais artigos relativos:

  • Gere todas as combinações de 3 ou múltiplas colunas
  • Supondo que eu tenha 3 colunas de dados, agora, quero gerar ou listar todas as combinações dos dados nessas 3 colunas, conforme a captura de tela abaixo mostrada. Você tem bons métodos para resolver essa tarefa no Excel?
  • Encontre todas as combinações que igualam uma determinada soma
  • Por exemplo, eu tenho a seguinte lista de números, e agora, eu quero saber qual combinação de números na lista soma 480, na imagem a seguir mostrada, você pode ver que há cinco grupos de combinações possíveis que somam iguais a 480, como 300 + 60 + 120, 300 + 60 + 40 + 80, etc. Neste artigo, falarei sobre alguns métodos para descobrir quais células somam um valor específico no Excel.
  • Gerar ou listar todas as permutações possíveis
  • Por exemplo, tenho três caracteres XYZ, agora, quero listar todas as permutações possíveis com base nesses três caracteres para obter seis resultados diferentes como este: XYZ, XZY, YXZ, YZX, ZXY e ZYX. No Excel, como você poderia gerar ou listar rapidamente todas as permutações com base em diferentes números de caracteres?
  • Gere uma lista de todas as combinações possíveis de 4 dígitos
  • Em alguns casos, podemos precisar gerar uma lista de todas as combinações possíveis de 4 dígitos dos números 0 a 9, o que significa gerar uma lista de 0000, 0001, 0002… 9999. Para resolver rapidamente a tarefa de lista no Excel, apresento alguns truques para você.

 


As melhores ferramentas de produtividade para escritório

O Kutools for Excel resolve a maioria dos seus problemas e aumenta sua produtividade em 80%

  • armadilha para peixes: Insira rapidamente fórmulas complexas, gráficos e qualquer coisa que você tenha usado antes; Criptografar células com senha; Criar lista de discussão e enviar emails ...
  • Barra Super Fórmula (edite facilmente várias linhas de texto e fórmula); Layout de leitura (ler e editar facilmente um grande número de células); Colar na faixa filtrada...
  • Mesclar células / linhas / colunas sem perder dados; Dividir o conteúdo das células; Combinar linhas / colunas duplicadas... Evite células duplicadas; Comparar intervalos...
  • Selecione Duplicado ou Único Linhas; Selecione linhas em branco (todas as células estão vazias); Super Find e Fuzzy Find em muitos livros; Seleção aleatória ...
  • Cópia exata Várias células sem alterar a referência da fórmula; Criação automática de referências para várias folhas; Inserir marcadores, Caixas de seleção e mais ...
  • Extrair Texto, Adicionar texto, remover por posição, Remover Espaço; Criar e imprimir subtotais de paginação; Converter entre conteúdo de células e comentários...
  • Super Filtro (salvar e aplicar esquemas de filtro a outras planilhas); Classificação Avançada por mês / semana / dia, frequência e mais; Filtro Especial por negrito, itálico ...
  • Combine pastas de trabalho e planilhas; Mesclar tabelas com base em colunas-chave; Divida os dados em várias folhas; Conversão em lote de xls, xlsx e PDF...
  • Mais de 300 recursos poderosos. Suporta Office / Excel 2007-2021 e 365. Suporta todos os idiomas. Fácil implantação em sua empresa ou organização. Recursos completos de avaliação gratuita de 30 dias. Garantia de devolução do dinheiro em 60 dias.
guia kte 201905

Guia do Office traz interface com guias para o Office e torna seu trabalho muito mais fácil

  • Habilite a edição e leitura com guias em Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Abra e crie vários documentos em novas guias da mesma janela, em vez de em novas janelas.
  • Aumenta sua produtividade em 50% e reduz centenas de cliques do mouse para você todos os dias!
parte inferior da aba do escritório

 

Comentários (42)
Avaliado 5 fora do 5 · classificações 1
Este comentário foi feito pelo moderador no site
Esta é uma fórmula brilhante! Não tenho ideia de como isso funciona, mas apenas altero as colunas A e B para corresponder ao tamanho das minhas listas e tenho minha saída em D1.
Este comentário foi feito pelo moderador no site
exemplo: minha lista de valores é 1,2,3,4,5,6......80, quero que o kutool exiba todas as combinações de um conjunto de 2 números, exemplo: 1-2, 1-3, 1-4, 1-5, ...................79-80. isso é possível com KUTOOL?
Este comentário foi feito pelo moderador no site
Existe uma maneira de fazer essa fórmula funcionar onde ela produz as várias combinações ainda separadas em 2 colunas separadas, mas adjacentes uma à outra?
Este comentário foi feito pelo moderador no site
Você teve alguma sorte em descobrir como fazer isso? Estou tentando fazer exatamente a mesma coisa e ter todas as minhas probabilidades em 2 colunas separadas no excel.
Este comentário foi feito pelo moderador no site
Você já teve alguma sorte com isso? Estou tentando fazer a mesma coisa e ter todas as combinações possíveis próximas umas das outras em 2 colunas separadas.
Este comentário foi feito pelo moderador no site
Posso obter a fórmula para todas as combinações de uma matriz 5*5 (5 linhas e 5 colunas) tentei, mas não consegui, por favor me ajude.......
Este comentário foi feito pelo moderador no site
MUITO ÚTIL. Agora sou capaz de gerar combinações com muita facilidade.
Este comentário foi feito pelo moderador no site
Como você poderia usar KuTools, ou mesmo uma fórmula, se você quisesse todas as permutações do cabeçalho Month. Jan, Jan e Fev, Jan e Mar, Jan e Mar, Jan e Fev e Mar, etc etc
Este comentário foi feito pelo moderador no site
alguém sabe como modificar isso para refletir 6 colunas de dados, em vez de apenas duas?
Este comentário foi feito pelo moderador no site
procurando a mesma coisa. ninguem sabe?
Este comentário foi feito pelo moderador no site
alguém sabe como modificar isso para refletir 6 colunas de dados?
Este comentário foi feito pelo moderador no site
Para mais colunas:
A primeira parte do formulado precisa ser modificada para multiplicar todas as possibilidades, por exemplo, isso seria para 6 colunas
COUNTA($A$2:$A$9)*COUNTA($B$2:$B$9)*COUNTA($C$2:$C$9)*COUNTA($D$2:$D$9)*COUNTA($E$2:$E$9)*COUNTA($F$2:$F$9)
então você está adicionando
*COUNTA(YourRangeAqui)
para cada coluna
A segunda parte da fórmula precisa ser modificada para cada coluna da seguinte forma:
INDEX($A$2:$A$9,MOD(ROW()-ROW($I$2),COUNTA($A$2:$A$9))+1)&INDEX($B$2:$B$9,MOD(ROW()-ROW($I$2),COUNTA($B$2:$B$9))+1)&INDEX($C$2:$C$9,MOD(ROW()-ROW($I$2),COUNTA($C$2:$C$9))+1)&INDEX($D$2:$D$9,MOD(ROW()-ROW($I$2),COUNTA($D$2:$D$9))+1)&INDEX($E$2:$E$9,MOD(ROW()-ROW($I$2),COUNTA($E$2:$E$9))+1)&INDEX($F$2:$F$9,MOD(ROW()-ROW($I$2),COUNTA($F$2:$F$9))+1)
então você está adicionando
&INDEX(SeuRangeAqui,MOD(ROW()-ROW($I$2),COUNTA(YourRangeAqui))+1)

Então junte todos e você terá este exemplo para 6 colunas:

=IF(ROW()-ROW($I$2)+1>COUNTA($A$2:$A$9)*COUNTA($B$2:$B$9)*COUNTA($C$2:$C$9)*COUNTA($D$2:$D$9)*COUNTA($E$2:$E$9)*COUNTA($F$2:$F$9),"",INDEX($A$2:$A$9,MOD(ROW()-ROW($I$2),COUNTA($A$2:$A$9))+1)&INDEX($B$2:$B$9,MOD(ROW()-ROW($I$2),COUNTA($B$2:$B$9))+1)&INDEX($C$2:$C$9,MOD(ROW()-ROW($I$2),COUNTA($C$2:$C$9))+1)&INDEX($D$2:$D$9,MOD(ROW()-ROW($I$2),COUNTA($D$2:$D$9))+1)&INDEX($E$2:$E$9,MOD(ROW()-ROW($I$2),COUNTA($E$2:$E$9))+1)&INDEX($F$2:$F$9,MOD(ROW()-ROW($I$2),COUNTA($F$2:$F$9))+1))

Onde você colaria esta fórmula em $I$2 e estaria olhando $A$2:$A$9 $B$2:$B$9 $C$2:$C$9 ... até $F$2:$F$9
Este comentário foi feito pelo moderador no site
isso não funciona :( mais complicado do que isso
Este comentário foi feito pelo moderador no site
Para mais colunas:
A primeira parte do formulado precisa ser modificada para multiplicar todas as possibilidades, por exemplo, isso seria para 6 colunas:

COUNTA($A$2:$A$9)*COUNTA($B$2:$B$9)*COUNTA($C$2:$C$9)*COUNTA($D$2:$D$9)*COUNTA($E$2:$E$9)*COUNTA($F$2:$F$9)
então você está adicionando
*COUNTA(YourRangeAqui)
para cada coluna

A segunda parte da fórmula precisa ser modificada para cada coluna da seguinte forma:

INDEX($A$2:$A$9,MOD(ROW()-ROW($I$2),COUNTA($A$2:$A$9))+1)&INDEX($B$2:$B$9,MOD(ROW()-ROW($I$2),COUNTA($B$2:$B$9))+1)&INDEX($C$2:$C$9,MOD(ROW()-ROW($I$2),COUNTA($C$2:$C$9))+1)&INDEX($D$2:$D$9,MOD(ROW()-ROW($I$2),COUNTA($D$2:$D$9))+1)&INDEX($E$2:$E$9,MOD(ROW()-ROW($I$2),COUNTA($E$2:$E$9))+1)&INDEX($F$2:$F$9,MOD(ROW()-ROW($I$2),COUNTA($F$2:$F$9))+1)

então você está adicionando

&INDEX(SeuRangeAqui,MOD(ROW()-ROW($I$2),COUNTA(YourRangeAqui))+1)

Então junte todos e você terá este exemplo para 6 colunas:

=IF(ROW()-ROW($I$2)+1>COUNTA($A$2:$A$9)*COUNTA($B$2:$B$9)*COUNTA($C$2:$C$9)*COUNTA($D$2:$D$9)*COUNTA($E$2:$E$9)*COUNTA($F$2:$F$9),"",INDEX($A$2:$A$9,MOD(ROW()-ROW($I$2),COUNTA($A$2:$A$9))+1)&INDEX($B$2:$B$9,MOD(ROW()-ROW($I$2),COUNTA($B$2:$B$9))+1)&INDEX($C$2:$C$9,MOD(ROW()-ROW($I$2),COUNTA($C$2:$C$9))+1)&INDEX($D$2:$D$9,MOD(ROW()-ROW($I$2),COUNTA($D$2:$D$9))+1)&INDEX($E$2:$E$9,MOD(ROW()-ROW($I$2),COUNTA($E$2:$E$9))+1)&INDEX($F$2:$F$9,MOD(ROW()-ROW($I$2),COUNTA($F$2:$F$9))+1))

Onde você colaria esta fórmula em $I$2 e estaria olhando $A$2:$A$9 $B$2:$B$9 $C$2:$C$9 ... até $F$2:$F$9
Este comentário foi feito pelo moderador no site
isso não funciona :( mais complicado que isso
Este comentário foi feito pelo moderador no site
Alguma idéia de como adicionar um espaço no meio?
Este comentário foi feito pelo moderador no site
Olá, Eoin,
a fórmula deste artigo não pode te ajudar a adicionar um espaço entre os valores das células, mas, você pode aplicar o Kutools for Excel, com ele, você pode digitar qualquer delimitador que desejar para separar o resultado combinado, veja a captura de tela:
Este comentário foi feito pelo moderador no site
Você pode adicionar um espaço adicionando " "& antes de indexar a coluna B, logo após o & existente, assim.....

=IF(ROW()-ROW($D$1)+1>COUNTA($A$1:$A$4)*COUNTA($B$1:$B$3),"",INDEX($A$1:$A$4,INT((ROW()-ROW($D$1))/COUNTA($B$1:$B$3)+1))&" "&INDEX($B$1:$B$3,MOD(ROW()-ROW($D$1),COUNTA($B$1:$B$3))+1))


....ou qualquer outro delimitador que você goste!
Este comentário foi feito pelo moderador no site
O KuTools é capaz de classificar células em uma linha de maneira "combinação simples"?
Quero dizer, se eu tiver esses dados:
_________________________
John Jack Paul Macy

Mark Larry

Jerry Paul Mary

Sam Jeff Peter Lucas
_________________________



E eu quero produzi-los assim:
___________
John Jack

João Paulo

John Macy

Jack Paul

Jack Macy

Paul Macy

Mark Larry

Jerry Paul

Jerry Marry

Paulo Maria

Sam Jeff

Sam Peter

Sam Lucas

Jeff Peter

Jeff Lucas

Pedro Lucas
____________


Como posso fazer isso? O KuTools pode fazer algo assim?

Obrigado!
Este comentário foi feito pelo moderador no site
Olá, Artur,
Desculpe, o Kutools não pode ajudá-lo a resolver este trabalho como você disse.
Obrigado pelo seu comentário.
Este comentário foi feito pelo moderador no site
Alguém já descobriu uma fórmula para fazer isso para 5 conjuntos de dados? Eu estava perplexo com isso até agora.
Este comentário foi feito pelo moderador no site
Olá, Marcos,
O Kutools pode ajudá-lo a resolver seu problema rapidamente, verifique a seguinte captura de tela:
Por favor, tente, espero que possa ajudá-lo, obrigado!
Este comentário foi feito pelo moderador no site
Oi,
Quero saber o que fazer se quiser gerar mais de 1,4 milhão de combinações e ultrapassar o limite de linhas do Excel?
Existe uma maneira de colocar Kudos para continuar sua iteração na próxima coluna?
Este comentário foi feito pelo moderador no site
Por que minha fórmula não funcionou para criar 25 combinações na Coluna E (5 elementos da Col A * 5 elementos da Col B) ? Considerando que a fórmula neste artigo funcionou na Coluna D quando a arrastei por 25 células? Captura de tela - https://prnt.sc/ihwr18
Este comentário foi feito pelo moderador no site
Hola me arroja una referencia circula la formula
=SI(FILA()-FILA($D$1)+1>(CONTARA($A$1:$A$4)*CONTARA($B$1:$B$3));"";INDICE($A$1:$A$4;RESIDUO((FILA()-FILA($D$1));COUNTA($B$1:$B$3)+1))
&INDICE($B$1:$B$3;RESIDUO(FILA()-FILA($D$1);CONTARA($B$1:$B$3))+1))
Este comentário foi feito pelo moderador no site
Olá, e se essas combinações em vez de texto são números, como posso fazer o cálculo para os resultados???? eu tento adicionar o "+" mas o excel não sabe que é o simbol .. como você resolve isso?
Este comentário foi feito pelo moderador no site
Usei as extions e funciona fantástico, mas agora estou com um problema, preciso calcular a soma,, mas o resultado é um texto,, entro em um separador que é o simbol +, mas enfim tenho um texto e é impossível converter em uma operação.
Este comentário foi feito pelo moderador no site
Quase muito útil. Seria bom se ele realmente usasse o que estiver na célula ($ A $ 1) e não convertesse a célula em texto. Então eu poderia simplesmente colar o que eu preciso no A1 e executá-lo novamente sem precisar alterar nada.
Este comentário foi feito pelo moderador no site
Existe uma maneira de produzir isso como um arquivo txt? Quando você tem milhões de resultados na coluna D, não é exatamente prático arrastar a alça de preenchimento.
Não há comentários postados aqui ainda
carregar mais
Deixe o seu comentário
Postando como convidado
×
Avalie esta postagem:
0   Personagens
Locais sugeridos

Siga-nos

Copyright © 2009 - www.extendoffice.com. | Todos os direitos reservados. Distribuído por ExtendOffice. | | | Mapa do site
Microsoft e o logotipo do Office são marcas comerciais ou marcas registradas da Microsoft Corporation nos Estados Unidos e / ou em outros países.
Protegido por Sectigo SSL