Transformar matriz rectangular a dos columnas y múltiples filas

Los datos están así, y cada fila tiene diferentes columnas rellenas de texto:

España alemania francia irlanda

Italia portugal grecia

Los quiero así (en dos columnas):

España alemania

España francia

España portugal

España irlanda

Italia portugal

Italia grecia

1 respuesta

Respuesta
2

H o l a:

En tu ejemplo en el resultado pusiste España-Portugal, pero Portugal no está en la misma fila que España, supongo que es un error, si es así, entonces ejecuta la siguiente macro:

Sub arreglar()
'Por.Dante Amor
    Set h1 = Sheets("Hoja3")
    Set h2 = Sheets("Hoja4")
    h2.Cells.Clear
    '
    fila = 1
    k = 1
    For i = 1 To h1.Range("A" & Rows.Count).End(xlUp).Row
        For j = 2 To h1.Cells(i, Columns.Count).End(xlToLeft).Column
            h2.Cells(fila, "A") = h1.Cells(i, "A")
            h2.Cells(fila, "B") = h1.Cells(i, j)
            fila = fila + 1
        Next
    Next
    MsgBox "fin"
End Sub

Cambia en la macro anterior Hoja3 por el nombre de tu hoja que tiene los datos, crea una hoja con el nombre de "Hoja4", en la hoja4 quedarán los resultados en 2 columnas.


':)
':)

Te anexo las instrucciones para ejecutar una macro:

Sigue las Instrucciones para un botón y ejecutar la macro

  1. Abre tu libro de Excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. En el menú elige Insertar / Módulo
  4. En el panel del lado derecho copia la macro
  5. Ahora para crear un botón, puedes hacer lo siguiente:
  6. Inserta una imagen en tu libro, elige del menú Insertar / Imagen / Autoformas
  7. Elige una imagen y con el Mouse, dentro de tu hoja, presiona click y arrastra el Mouse para hacer grande la imagen.
  8. Una vez que insertaste la imagen en tu hoja, dale click derecho dentro de la imagen y selecciona: Tamaño y Propiedades. En la ventana que se abre selecciona la pestaña: Propiedades. Desmarca la opción “Imprimir Objeto”. Presiona “Cerrar”
  9. Vuelve a presionar click derecho dentro de la imagen y ahora selecciona: Asignar macro. Selecciona: arreglar
  10. Aceptar.
  11. Para ejecutarla dale click a la imagen.


':)
':)

¡Gracias por tu tiempo!  Tengo que bichear un poco más porque he intentado aplicarla pero me da de partida un "Error de compilación. Se esperaba: =". No estoy muy acostumbrada a las macros aunque lo has explicado super bien.  

Sí lo de Portugal era un error tonto.

Aparte de esto en otros casos tengo que hacer lo mismo pero un poco más complejo al convertir a dos columnas todas las relaciones que aparecen entre sí en una misma fila de datos, con el objetivo posterior de hacer un gráfico de redes entre nodos o vértices que se asocian entre sí (por estar en la misma fila).

Datos originales

España alemania francia irlanda

Italia portugal grecia

Resultado tipo 1 (corrigiendo mi consulta anterior)

España alemania

España francia

España irlanda

Italia portugal

Italia grecia

Resultado tipo 2 (otra tarea que debo hacer otras veces) (todas las combinaciones posibles de relaciones que hay en una misma fila deben ser convertidas a dos columnas)

España alemania

España francia

España irlanda

alemania francia

alemania irlanda

francia irlanda

Italia portugal

Italia grecia

portugal grecia

Muchas gracias de nuevo, voy a intentar averiguar a qué se debe el error de compilación.

H o l a:

Revisa que hayas copiado completa la macro.

Cuando marca un error de compilación te sombrea de azul alguna línea de la macro, pon la imagen de la macro cuando ocurre el error para ver qué es lo que te falta.

Para realizar la combinación de todos los datos,

Crea una nueva pregunta en todoexpertos, en el tema de microsoft excel, en el desarrollo de la pregunta escribe: "para Dante Amor", ahí me describes con detalle lo que necesitas.

Sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas