Excel - ¿cómo extraer una lista de nombres únicos de varios bloques de datos?

 
Vista:
Imágen de perfil de celia
Val: 761
Bronce
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

¿cómo extraer una lista de nombres únicos de varios bloques de datos?

Publicado por celia (437 intervenciones) el 21/06/2019 16:30:31
Adjunto la hoja con 1 ejemplo de cómo quería sacar los nombres de los bloques de datos.
Buscaba resolver 2 cosas pero si no se puede me valdría con que funcionara la primera opción.
Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de wordexperto.com
Val: 6.373
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

¿cómo extraer una lista de nombres únicos de varios bloques de datos?

Publicado por wordexperto.com (2803 intervenciones) el 21/06/2019 18:22:41
Celia, he agrupado los cuatro bloques de la hoja 1 en una misma tabla. Después tienes dos hojas con dos Tablas dinámicas diferentes. La primera es el registro de nombres únicos, le he añadido el bloque en el que están.
La segunda TD es como tu tienes los datos. Yo la he obtenido aplicando una TD a los mismos datos bien estructurados en una sola base de datos.
https://wordexperto.com/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de celia
Val: 761
Bronce
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

¿cómo extraer una lista de nombres únicos de varios bloques de datos?

Publicado por celia (437 intervenciones) el 24/06/2019 11:44:56
Gracias por tu trabajo y el ordenamiento de las tablas wordexperto, pero parece que se me cruzan por más claras que tú las veas yo no soy capaz de ver cómo funcionan y no me encajan del todo en lo que busco.
Gracias de verdad, si algún día las entiendo te lo diré.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.136
Plata
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

¿cómo extraer una lista de nombres únicos de varios bloques de datos?

Publicado por Andres Leonardo (1583 intervenciones) el 21/06/2019 22:16:41
Haber como te lo explico .. deberia la estructura de tu libro cambiar el dato de bloque sea un atributo asi podrias sacar los datos ...

el tema es que no vas a saber cuandoi empezar y cuando parar cuando te agreguen mas bloques

en todo caso como te digo se podria hacer una macro que revises pro bloque e ir insertando

Saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de celia
Val: 761
Bronce
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

¿cómo extraer una lista de nombres únicos de varios bloques de datos?

Publicado por celia (437 intervenciones) el 24/06/2019 11:49:54
Hola Andrés.

He puesto otro ejemplo por si pudiera hacerse con alguna fórmula o macro que use siempre la misma celda de partida I5 y ampliándola a la derecha, aunque haya muchas columnas sin datos, para que al insertar columnas en I5 quedaran los nuevos bloques de datos dentro del rango que contiene la fórmula o macro.
Adjunto hoja nueva.

Gracias por la ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

¿cómo extraer una lista de nombres únicos de varios bloques de datos?

Publicado por Antoni Masana (2477 intervenciones) el 24/06/2019 12:59:42
Macro para analizar los bloques de izquierda a derecha

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Option Explicit
 
Sub Nombre_Sin_Repetir()
    Dim Colum As Long, Fila_Dest As Long, Fila_Orig As Long
 
    Colum = 5
    While UCase(Cells(4, Colum)) = "NOMBRE"
        Fila_Orig = 5
        While Cells(Fila_Orig, Colum) <> ""
            Fila_Dest = 5
            While Cells(Fila_Dest, "B") <> "" And UCase(Cells(Fila_Dest, "B")) <> UCase(Cells(Fila_Orig, Colum))
               Fila_Dest = Fila_Dest + 1
            Wend
            Cells(Fila_Dest, "B") = Cells(Fila_Orig, Colum)
            Fila_Orig = Fila_Orig + 1
        Wend
        Colum = Colum + 5
    Wend
End Sub


Macro para analizar los bloques de derecha a izquierda:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Option Explicit
 
Sub Nombre_Sin_Repetir()
    Dim Colum As Long, Fila_Dest As Long, Fila_Orig As Long
 
    For Colum = 16380 To 5 Step -5
        If UCase(Cells(4, Colum)) = "NOMBRE" Then
            Fila_Orig = 5
            While Cells(Fila_Orig, Colum) <> ""
                Fila_Dest = 5
                While Cells(Fila_Dest, "B") <> "" And UCase(Cells(Fila_Dest, "B")) <> UCase(Cells(Fila_Orig, Colum))
                    Fila_Dest = Fila_Dest + 1
                Wend
                If Cells(Fila_Dest, "B") = "" Then
                   Cells(Fila_Dest, "B") = Cells(Fila_Orig, Colum)
                End If
                Fila_Orig = Fila_Orig + 1
            Wend
        End If
    Next
End Sub


Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de celia
Val: 761
Bronce
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

¿cómo extraer una lista de nombres únicos de varios bloques de datos?

Publicado por celia (437 intervenciones) el 25/06/2019 11:06:20
Buenas Antoni.
No sé qué le falla a la 1ª macro que no acaba de funcionar. La 2ª si funciona bien.
Gracias de nuevo por tu valiosa ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

¿cómo extraer una lista de nombres únicos de varios bloques de datos?

Publicado por Antoni Masana (2477 intervenciones) el 25/06/2019 11:10:17
Si te interesa la primera dime que fallo ves, si prefieres la segunda lo damos por resuelto.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de celia
Val: 761
Bronce
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

¿cómo extraer una lista de nombres únicos de varios bloques de datos?

Publicado por celia (437 intervenciones) el 25/06/2019 13:10:19
La 1ª sería la ideal, pero no sé porqué no funciona como la 2ª.
Adjunto la hoja nueva. Creé un botón y le asigné la macro
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

¿cómo extraer una lista de nombres únicos de varios bloques de datos?

Publicado por Antoni Masana (2477 intervenciones) el 25/06/2019 14:26:40
La primera macro funciona bien.

Primero copia los nombres del bloque 5 después el 4, el 3, el 2 y el 1 y el color de los nombres estan en rojo porque solo copia el nombre y no el color y es el color que tiene la celda de la columna B por defecto.

Si quieres que el nombre copiado tenga el color del primer bloque donde lo encuentre te adjunto un fichero con dos macros. ahora las dos funcionan pero varia el orden y el color.

El fallo en la primera macro era la asignación inicial de Colum

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Option Explicit
 
Sub Nombre_Sin_Repetir()
    Dim Colum As Long, Fila_Dest As Long, Fila_Orig As Long
 
    Colum = 10
    While UCase(Cells(4, Colum)) = "NOMBRE"
        Fila_Orig = 5
        While Cells(Fila_Orig, Colum) <> ""
            Fila_Dest = 5
            While Cells(Fila_Dest, "B") <> "" And UCase(Cells(Fila_Dest, "B")) <> UCase(Cells(Fila_Orig, Colum))
               Fila_Dest = Fila_Dest + 1
            Wend
            If Cells(Fila_Dest, "B") = "" Then
               Cells(Fila_Dest, "B") = Cells(Fila_Orig, Colum)
            End If
            Fila_Orig = Fila_Orig + 1
        Wend
        Colum = Colum + 5
    Wend
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de celia
Val: 761
Bronce
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

¿cómo extraer una lista de nombres únicos de varios bloques de datos?

Publicado por celia (437 intervenciones) el 25/06/2019 15:04:13
Eres GENIAL Antoni !!!
Me encanta que mantenga el color del texto, aunque solo lo puse para el ejemplo me será muy útil también.

MUCHAS GRACIAS !!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar