Como realizar una búsqueda en una tabla y que me traiga los resultados en forma horizontal

Tengo una Tabla Matriz con Titulos de Libros y sus correspondientes materias que rescate de una Base de Access

Como un libro puede tener varios temas, he repetido el título tantas veces como materias tenga. Necesito que aparezcan los temas en columnas, así puedo posteriormente agruparlos, por ejemplo en Deportes, Educación, Entrenamiento, etc. Cada libro puede tener un máximo de 10 temas (10 columnas).

1 Respuesta

Respuesta
1

Considero que para realizar agrupaciones, la mejor manera es como lo tienes actualmente.

Pero pongo aquí una macro para pasar los datos a columnas. Es decir, según tu imagen, pasar los datos de la tabla izquierda a la tabla de la derecha.

Sub resultados_en_horizontal()
  Dim a As Variant, b As Variant, i As Long, lr As Long, dic As Object
  '
  a = Range("A2:C" & Range("A" & Rows.Count).End(3).Row).Value2
  ReDim b(1 To UBound(a), 1 To UBound(a) + 2)
  Set dic = CreateObject("Scripting.Dictionary")
  '
  For i = 1 To UBound(a)
    dic(a(i, 1) & "|" & a(i, 3)) = dic(a(i, 1) & "|" & a(i, 3)) & a(i, 2) & "|"
  Next
  '
  Range("F2", Cells(Rows.Count, Columns.Count)).ClearContents
  Range("F2").Resize(dic.Count, 1).Value = Application.Transpose(dic.keys)
  Range("H2").Resize(dic.Count, 1).Value = Application.Transpose(dic.items)
  lr = Range("F" & Rows.Count).End(3).Row
  Range("F2:F" & lr).TextToColumns Range("F2"), DataType:=xlDelimited, Other:=True, OtherChar:="|"
  Range("H2:H" & lr).TextToColumns Range("H2"), DataType:=xlDelimited, Other:=True, OtherChar:="|"
End Sub

Hola, desde ya gracias por tu tiempo y trabajo. Me surgieron estas dudas: la TB_Matriz esta en Hoja1, si la tabla en horizontal  esta en Hoja2: en cual pongo la macro, o automáticamente la coloca pasa los datos a Hoja2, que llamaré TB_Fase1

Segunda consulta: tengo que tener antes en la Hoja2, los encabezados ya armados? así el primer encabezado para la primer columna estaría en A1

Gracias!!!!

Según tu imagen los datos están en un rango de celdas en las columnas A, B y C.

Y el resultado lo tienes en las columnas F en adelante. Todo en la misma hoja.

Te sugiero que cambies tus tablas a rango de celdas.

Ejecuta la macro en la hoja y te pondrá los resultados en la misma hoja en las columnas F en adelante. Ya después de ejecutar la macro y revisar los datos, podrás cambiar los rangos a tablas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas