
Tengo N tablas con M líneas para cada tabla.
Por ejemplo, tengo dos tablas A y B con 4 líneas y 2 líneas respectivamente:
Tabla A
A1
A2
A3
A4
Tabla B
A1
A2
Quiero crear una tabla C, con líneas de 4x2 y combinando todas las posibilidades de líneas:
Tabla C
A1 B1
A1B2
A2 B1
A2 B2
A3B1
A3 B2
A4 B1
A4 B2
¿Hay alguna manera de lograrlo con Excel y, en caso afirmativo, cómo? Gracias.
Respuesta1
Digamos que tenemos dos listas como:
y queremos generar todas las combinaciones de las dos listas. Ejecutando 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
producirá en la columnaC:
Las macros son muy fáciles de instalar y usar:
- ALT-F11 abre la ventana VBE
- ALT-I ALT-M abre un módulo nuevo
- pegue las cosas y cierre la ventana de VBE
Si guarda el libro, la macro se guardará con él. Si está utilizando una versión de Excel posterior a 2003, debe guardar el archivo como.xlsmen vez de.xlsx
Para eliminar la macro:
- abrir la ventana VBE como arriba
- borrar el código
- cerrar la ventana VBE
Para usar la macro de Excel:
- ALT-F8
- Seleccione la macro
- Toque EJECUTAR
Para obtener más información sobre las macros en general, consulte:
http://www.mvps.org/dmcritchie/excel/getstarted.htm
y
http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx
¡Las macros deben estar habilitadas para que esto funcione!