lunes, 8 de noviembre de 2010

Filtro condicionado en Excel.

Preguntaba un lector la manera de realizar algún tipo de filtro sobre una base de datos, condicionado el filtro a unos elementos duplicados:

Buscar duplicados por T Contractual
codigo FEC_BAJA
10107 10/05/2010
10107 18/06/2010
10108 08/08/2008
10109 05/05/2007
10109 06/03/2009
10110 05/10/2007
10111
10112
10113 14/02/2007
10114 21/12/2007
10114 29/07/2008
10115 09/02/2008
10116
10117 01/08/2008
10117 01/08/2009
10117
10118 01/05/2007
10118 15/07/2007
10118 08/07/2008
10118
10119 14/06/2007
10120 05/08/2007
10120 31/01/2008
10121 14/02/2007
Extraer 1ª condición y condición 2º en una sola consulta:
Todos los que no tienen fecha de baja y de los que no tienen fecha de baja todos sus códigos que si que tienen fecha.
Ejemplo
10117 01/08/2008
10117 01/08/2009
10117
10118 01/05/2007
10118 15/07/2007
10118 08/07/2008
10118
Estos son los que se necesitan sacar el resto no hacen falta .


Lo primero que se me ocurrió fue trabajar sobre la base de datos empleando columnas auxiliares para facilitar el trabajo.
Se trataba de marcar de alguna forma, mediante la combinación de algunas funciones, cuáles esran los registros que cumplian con los requisitos exigidos. Esto lo logré empleando funciones ya conocidas como CONTAR.SI o COINCIDIR.

Suponiendo en la columna A el campo 'Código' y en la columna B el campo 'FEC_BAJA'; entonces en una primera columna C incluiremos la siguiente formulación:
=SI(B2="";A2;"")
con la que descubrimos las celdas vacias (primera condición pedida).


En la columna D la fórmula:
=SI(CONTAR.SI(A:A;A2)>1;A2;"")
para descubrir los elementos repetidos.


Por último, en la columna E, otra columna auxiliar sobre la que aplicar un Autofiltro:
=SI(D2="";"";SI.ERROR(COINCIDIR(D2;C2:C25;0);""))
que sólo asignará algún valor a aquellos registros que cumplan las condiciones exigidas.


El Autofiltro a aplicar sobre la columna D sería mostrar elementos no vacios.


obteniendo el resultado deseado:

2 comentarios:

  1. Para el ejemplo que pones, ¿sabes cómo podría aplicar un filtro en la columna A, para filtar los códigos según criterio 1, 2 o 3? Es decir no filtrar por códigos sino por grupos de códigos de cada condición. Muchas gracias

    ResponderEliminar
    Respuestas
    1. Hola Rocio,
      discúlpame pero no comprendo a qué te refieres con 'grupos de códigos'???
      Si pones un ejemplo...
      Gracias y saludos

      Eliminar

Nota: solo los miembros de este blog pueden publicar comentarios.