Unir resultados de filas en una fila única

Me gustaría saber como podrían unir los datos en común de dos columnas. Agruparlos por la semana anual y día. Tengo una hoja excel con los siguientes datos:

19Lunes 562

19Lunes 587

19Martes 876

19Jueves 632

19Jueves 895

19Jueves 996

Me gustaría que una macro me lo devolviera de la siguiente manera:

19Lunes    562/587 

19Martes  876

19Jueves   632/895/996

Se que es con un bucle, lo he intentado muchas veces y ya comienzo a estar desesperado, el VBa no es lo mio...

1 respuesta

Respuesta
1

Confirma por favor si los datos finales siempre tendrán 3 caracteres, o deja algunos ejemplos donde no se cumpla este formato (que seguramente luego aparecerán), por ejemplo:

5Lunes 2345

Espero tus aclaraciones para continuar... no valores aún.

Hola Elsa. En primer lugar darte las gracias por tu interés en ayudarme. Los códigos tendrían siempre el mismo formato, EST100000000, con 12 caracteres.

¿Sería posible hacerlo?

Muchas gracias.

Un saludo,

Todo se puede...¿pero estamos hablando de la misma consulta?

No se parece en nada a lo comentado antes: '...Agruparlos por la semana anual y día...

19Lunes 562 >>>> 19Lunes 562/587 

EST100000000 son 12 caracteres sin espacios.... ¿Aquí necesitas separar los 3 primeros del resto?

Por favor, que tu consulta refleje claramente lo que necesitas ... observa qué diferentes son tus muestras.

Sdos!

Hola Elsa. Perdona pero no me expliqué bien. Los códigos de tres dígitos que puse al principio los puse para no poner los 12, pero en realidad el formato que quiero agrupar son 12. Adjunto una imagen de como son los datos iniciales y como deben quedar, creo que es mejor así no te genero más dudas. El dato 1 y el dato 2 los importo, solo me falta obtener los datos resultado1 y resultado2 tal y como se ven en la imagen.

Muchas gracias.

Ahora sí ;)

Esta seria la macro. Va comentada... ajusta las referencias a filas y col de inicio ... no se ven tus encabezados por lo que asumo el inicio en A2.

Sub Agrupando()
'x Elsamatilde
'se recorre la col A hasta encontrar celda vacía = fin de rango
[A2].Select
fini = Range("A" & Rows.Count).End(xlUp).Row
While ActiveCell.Value <> ""
    'se guardan los datos del primer registro para comparar
    ini = ActiveCell.Row
    dato = ActiveCell
    cadena = ActiveCell.Offset(0, 1)
    While ActiveCell.Offset(1, 0) = dato
        'armar cadena
        cadena = cadena & "/" & ActiveCell.Offset(1, 1)
        ActiveCell.Offset(1, 0).Select
        fini = ActiveCell.Row
    Wend
    Range("C" & ini) = dato
    Range("D" & ini) = cadena
'se borran las filas entre ini+1 y fini si corresponde
If ini + 1 <= fini Then
    Range("A" & ini + 1 & ":A" & fini).EntireRow.Delete
Else
    ActiveCell.Offset(1).Select
End If
Wend
'opcional:
msgbox "Fin del proceso.",,"INFORMACIÓN"
End Sub

Como aquí se están eliminando filas te recomiendo probarla en una hoja copia primero.

Sdos y si todo quedó resuelto no olvides valorar la respuesta (Excelente o buena) para darla por cerrada.

Te recuerdo que la consulta sigue abierta (como sin respuesta) cuando ya te la he respondido en su momento. Si te queda alguna duda comenta y la seguimos tratando... sino valora (Excelente o buena) para darla por cerrada

Sdos!

¿Podrías valorar la respuesta (excelente o buena) para darla por cerrada?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas