Tenho N tabelas com M linhas para cada tabela.
Por exemplo, tenho duas tabelas A e B com respectivamente 4 linhas e 2 linhas:
Tabela A
A1
A2
A3
A4
Tabela B
A1
A2
Quero criar uma tabela C, com linhas 4x2 e combinando todas as possibilidades de linhas:
Tabela C
A1 B1
A1 B2
A2 B1
A2 B2
A3 B1
A3 B2
A4 B1
A4 B2
Existe uma maneira de conseguir isso com o Excel e, em caso afirmativo, como? Obrigado.
Responder1
Digamos que temos duas listas como:
e queremos gerar todas as combinações das duas listas. Executando esta macro:
Sub generateCombinations()
Dim nA As Long, nB As Long, K As Long, i As Long, j As Long
Dim rc As Long
rc = Rows.Count
nA = Cells(rc, "A").End(xlUp).Row
nB = Cells(rc, "B").End(xlUp).Row
K = 1
For i = 1 To nB
vb = Cells(i, "B").Value
For j = 1 To nA
Cells(K, "C").Value = vb & " " & Cells(j, "A").Value
K = K + 1
Next j
Next i
End Sub
produzirá em colunaC:
As macros são muito fáceis de instalar e usar:
- ALT-F11 abre a janela VBE
- ALT-I ALT-M abre um novo módulo
- cole o material e feche a janela do VBE
Se você salvar a pasta de trabalho, a macro será salva com ela. Se você estiver usando uma versão do Excel posterior a 2003, deverá salvar o arquivo como.xlsmem vez de.xlsx
Para remover a macro:
- abra a janela VBE como acima
- limpar o código
- feche a janela do VBE
Para usar a macro do Excel:
- ALT-F8
- Selecione a macro
- Toque em EXECUTAR
Para saber mais sobre macros em geral, consulte:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
e
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
As macros devem estar habilitadas para que isso funcione!