Excel - Extraer datos de la columna "A" en base a criterios repetidos en la columna "B" y listarlos en otra hoja de datos.

Tengo 2 hojas de datos en excel.

En la primera tengo una base de datos con 2 columnas, una para códigos y otra para los diferentes tipos de procesos:

  • CODIGOS                         PROCESOS
  • ILXXX23                           Inversion
  • ILXXX24                           Inversion
  • ILXXX25                           Inversion
  • PLXXX26                          Produccion
  • ELXXX27                          Ensamblaje
  • ELXXX28                          Ensamblaje

Quiero separar los códigos según su proceso y listarlos automáticamente en las columnas de procesos que ya tengo preparadas en la otra hoja de datos, esta otra hoja esta estructurada de la siguiente forma:

  • INVERSION               PRODUCCION                ENSAMBLAJE

Quiero que quede asi:

  • INVERSION               PRODUCCION                ENSAMBLAJE
  • ILXXX23                     PLXXX26                        ELXXX27
  • ILXXX24                                                              ELXXX28                      

NOTA: Seguire añadiendo codigos en la primera hoja por lo que las referencias y filas van a ir cambiando pero las columnas seran las mismas, necesito que segun sean agregados mas datos en la hoja 1, estos se vean reflejados y agregados tambien en la hoja 2, es decir que la hoja 2 se actualice dinamicamente conforme se actualiza la hoja 1.

Que más puedo decir, muchas gracias por vuestro tiempo en contestar y os doy lo más preciado que tengo, la bendición de Dios Todopoderoso sobre vosotros y vuestra familia.

Respuesta
1

. 26.01.17 #Redistribución de tabla

Buenas tardes, señor

La solución que te propongo involucra una columna auxiliar en la hoja de tu tabla original (que asumiré se llama HojaPrincipal, pero -claro- luego colócale la que corresponda a tu libro):

A la izquierda del primer registro de esa tabla coloca la siguiente fórmula:

=CONTAR.SI($D$4:$D5;D5)&D5

Nota el uso del signo pesos que NO está aplicado a la fila del extremo inferior del rango. Esto hace que el rango de conteo se limite hasta la fila donde está la fórmula.

Si copias y pegas esa celda en la inmediata inferior, verás:

=CONTAR.SI($D$4:$D6;D6)&D6

[Considera si usas comas o punto y coma para separar argumentos de las funciones. Yo usé ";"]

Asígnale el formato deseado y, luego, copia esta celda y pégala en las restantes de esta misma columna.

Esta fórmula básicamente juntará un número de orden individual para cada proceso con la palabra que lo identifica.

El resultado será algo así como esto:

Bien, el paso siguiente es armar la tabla redistribuida como solicitabas.

En la hoja donde quieres tu nueva tabla, arma esta estructura con los procesos en cada columna -escritos tal cual como están en la base original- y una serie creciente de 1 hasta el número de filas que creas que puedas llegar a necesitar a futuro. Ejemplo:

Bien, falta la fórmula que haga el trabajo. En la celda amarilla, escribe esta fórmula:

=BUSCARV($H4&I$3;HojaPrincipal!$B$5:$D$270;2;0)

En el primer argumento de la fórmula dejo fija la columna H (para que busque el ordinal de esa fila) y dejo fija la fila 3 donde están los procesos.

Si no estuvieras familiarizado con la fórmula BUSCARV, hazmelo saber y te amplío el concepto, pero básicamente, lo que hará en esa celda es buscar 1Inversión en la columna auxiliar que agregaste en la base original y traerá el Código que esté en la segunda columna... si encontrara esa combinación de Número de orden + Proceso.

Es lógico suponer que no encontrará algunas de las combinaciones, simplemente porque no existen aún. En tal caso, la fórmula devolverá #N/A!

Para evitar ese problema, le colocaremos un condicional para que capture ese error y no ponga nada.

Entonces tu fórmula final será:

=SI(ESNOD(BUSCARV($H4&I$3;HojaPrincipal!$B$5:$D$270;2;0));"";BUSCARV($H4&I$3;HojaPrincipal!$B$5:$D$270;2;0))

Luego puedes copiar esta celda y pegarla en el resto del cuadro.

Modelo terminado:

Desde luego, tratándose de una solución basada en fórmulas la actualización de la tabla será automática, sin necesidad de macros, supuesto que haya formulas sufientes en ambas tablas.

Coméntame si resuelve lo que buscabas -y, en tal caso, agradeceré que califiques mi contribución- o escribeme de nuevo aquí, si necesitas más apoyo con esto.

Un abrazo

Fernando

.

.

Buenas,

De las respuestas que dí, estoy especialmente interesado en saber cómo te ayudó esta.

Entiendo que eres nuevo por aquí.
Una vez que recibiste la respuesta deberías asignarle una valorización para que quede finalizada.

Cordialmente,

Fernando

.

Fernando, muchas gracias, le pido perdón por no calificar su respuesta con prontitud, pero es que no quería contestar con un simple gracias a su atenta respuesta, y por cuestiones de trabajo lo fui prolongando.
La respuesta que usted me proporciono es muy acertada y funcional, sin embargo en mi situación particular no me sirve debido a que ya tengo una columna auxiliar con una fórmula contar enlazada a una celda de búsqueda. Me serviría si pudiera enlazarla de alguna manera para que hiciera ambas funciones.

De nueva cuenta muchas gracias.

Esta es la fórmula:

A2=CONTAR.SI(C$3:F$1048568,"*"&Cotizador!B1&"*")

A3=SI((CONTAR.SI($C83:$F83,"*"&Cotizador!$B$1&"*"))=1,A82+1,A82)

Aqui anexo el documento:  MEGA .gradient { filter: none; }

https://mega.nz/#!38xggbzZ

.

Buenas noches,

Aparentemente el archivo que subiste requiere de una clave. No pude acceder a él.

De todos modos, podrías agregar una columna a la izquierda de la primera (A) y a la fórmula de destino modificarle la columna de busqueda, es decir:

=SI(ESNOD(BUSCARV($H4&I$3;HojaPrincipal!$A$5:$D$270;2;0));"";BUSCARV($H4&I$3;HojaPrincipal!$A$5:$D$270;3;0))


Ahora bien, si eso te complicara demasiado la estructura de tu archivo podrías usar cualquier otra columna libre para armar la concatenación de orden + Proceso

Es decir coloca esta fórmula en cualquier columna libre de tu matriz:

=CONTAR.SI($C$2:$C3,C3)&C3

Supongamos en la columna Z y completa con las fórmulas necesarias para que considere todos los registros de esa base.

Desde luego, deberás cambiar aquella fórmula de búsqueda de la hoja de destino, por la siguiente (asumiendo las mismas direcciones de celda de mi primer solución):

=SI(ESNOD(COINCIDIR($H4&I$3,HojaPrincipal!$Z$2:$Z$1270,0)),"-",INDICE(HojaPrincipal!C$2:$C$1270,COINCIDIR($H4&I$3,HojaPrincipal!$Z$2:$Z$1270,0),1))

Como verás, dejamos de usar BUSCARV y la reemplazamos por INDICE y COINCIDIR.

Esto permite que la columna auxiliar esté en cualquier parte de la tabla y la de resumen traiga los datos en función de aquella columna.

Prueba con esto y dime, cuando puedas, qué tal te resultó.

Un abrazo
Fer

.

Perdona, olvide poner la clave de cifrado.

Clave de cifrado: !P6iphNvPrclRGNFkT6KUQQov5Es5vcvYsPDHYGNL5Q8

Agradezco mucho tu amabilidad, ayuda y generosidad al ayudarme con esto.

.

Buenas,

La solución dada en la respuesta anterior funciona correctamente.

Acabo de aplicarla en el archivo que compartiste y volví a subirla allí.

Fijate si puedes tomarlo y dime si satisface lo que buscabas.

Noté que la hoja de resumen tiene una serie de formatos condicionales que, me parece, no aplican a ese cuadro. De todos modos, los dejé como estaban.

Saludos

Fer

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas