martes, 2 de octubre de 2012

Filtrar valores

Hay varias maneras de filtrar valores en Excel. Para estudiarlas, partiremos de una lista de dos columnas: la primera será un listado de futbolistas y la segunda el país de nacimiento.

Método 1: Aplicación de un filtro a la lista

Hacemos clic en cualquier celda de la tabla y seleccionamos Datos + Filtro. En la parte derecha de los encabezados de las columna aparecen sendas flechas. Abrimos el menú asociado al encabezado País y elegimos uno; por ejemplo, Brasil

Método 2: Tablas

Hacemos clic en cualquier celda de la lista y seleccionamos Insertar + Tabla. Excel muestra el siguiente cuadro de diálogo:

Nos aseguramos que los datos coincidan con los de la figura y pulsamos Aceptar.

Parece que tenemos otra lista con filtros, pero una tabla es mucho más. Por ejemplo, una tabla lleva asociado un nombre de Excel. Para comprobarlo, accedemos a Fórmulas + Administrador de nombres.

El nombre asignado por defecto es Tabla1. Para cambiarlo, seleccionamos Tabla1, pulsamos Editar y en cuadro de diálogo cambiamos el nombre por Futbolistas (o el que queramos).

Para filtrar los jugadores de Brasil, actuamos igual que con los filtros de lista. En este ejercicio no vamos a analizar las ventajas de las tablas con respecto a las listas.

Método 3: Tablas dinámicas

He escrito más de 80 artículos en este blog y nunca me había referido a las tablas dinámicas hasta ahora. Tiempo habrá para ello y, por el momento, sólo voy a hacer una somera mención.

Para crear una tabla dinámica debemos hacer clic en cualquier celda de la lista y seleccionar Insertar + Tabla dinámica. Dejando los datos de la siguiente figura, crearemos la tabla dinámica a partir de la celda B2 de la Hoja3.
La Hoja3 queda así:

Arrastramos los campos País y Futbolista al área Etiquetas de fila.

Podemos cambiar el aspecto; por ejemplo, seleccionando Herramientas de tabla dinámica + Diseño + Diseño de informe + Mostrar en forma de esquema, obtenemos:

Ahora, basta aplicar el filtro que queramos a la columna País y obtendremos los nombres de los futbolistas del país elegido.

En este caso, el Total general no tiene sentido y puede eliminarse accediendo a Herramientas de tabla dinámica + Diseño + Totales generales + Activado sólo para filas.

Método 4: Filtrado mediante fórmulas

Los métodos anteriores requieren que el usuario aplique el filtro manualmente. Si no queremos que el usuario manipule nada tendremos que usar fórmulas.

El primer paso consiste en crear una tabla con la lista de datos, llamada Futbolistas, como se ha explicado en el Método 2.

A continuación, crearemos una tabla dinámica a partir de la celda F2 de la Hoja2. Esta tabla se hace como se ha explicado en el Método 3 pero, en este caso, sólo arrastraremos el campo País al área Etiquetas de fila. Podemos quitar el Total general pero no es necesario.

Esta tabla la usaremos para crear la lista desplegable que vamos a poner en la celda E2 de la Hoja1.

Estando en la celda E2 de la Hoja1, accedemos a Datos + Validación de datos y ponemos los datos de la siguiente figura:

En E2 se ha creado la lista desplegable de todos los países. Elegimos Brasil (u otro cualquiera) y nos vamos a la Hoja2. En esta hoja haremos los cálculos necesarios para obtener los jugadores de Brasil.

En B1:
=Hoja1!E2     [Resultado: Brasil]

En B3:
=SI(Futbolistas[@País]=$B$1;Futbolistas[@Futbolista];"")

En realidad no es necesario escribir la fórmula completa. Es mejor hacerlo así:
  • Escribimos =SI(
  • Hacemos clic en la celda C3 de la Hoja1   {Resultado: =SI(Futbolistas[@País]}
  • Escribimos =$B$1;
  • Hacemos clic en la celda B3 de la Hoja1   {Resultado: =SI(Futbolistas[@País]=$B$1;Futbolistas[@Futbolista]}
  • Escribimos ;"")
De este modo, resulta más difícil equivocarse.

Arrastramos el controlador de relleno para copiar la fórmula hasta la fila 57.

En la Hoja2, seleccionamos B2:B57 y creamos una tabla de nombre País.

En C3:
=SI(País[@País]="";"";CONTAR.SI(País[País];"<="&País[@País])-CONTAR.BLANCO(País[País]))

Como en el caso anterior, es conveniente introducir esta fórmula así:
  • Escribimos =SI(
  • Hacemos clic en B3
  • Escribimos ="";"";CONTAR.SI(
  • Seleccionamos B3:B57
  • Escribimos ;"<="&
  • Hacemos clic en B3
  • Escribimos )-CONTAR.BLANCO(
  • Seleccionamos B3:B57
  • Escribimos ))
Arrastramos el controlador de relleno hasta la fila 57.

Con el rango C3:C57 creamos otra tabla de nombre Orden.

En D3:
=SI.ERROR(INDICE(Futbolistas[Futbolista];COINCIDIR(FILA(A1);Orden[Orden];0));"")

De nuevo, introduciremos esta fórmula así:
  • Escribimos =SI.ERROR(INDICE(
  • Seleccionamos el rango B3:B57 de la Hoja1
  • Escribimos ;COINCIDIR(FILA(A1);
  • Seleccionamos el rango C3:C57 de la Hoja2
  • Escribimos ;0));"")
Arrastramos el controlador de relleno hasta la fila 57.

Repetimos esta fórmula en la columna D de la Hoja1 y el ejercicio estará terminado.



No hay comentarios:

Publicar un comentario