El filtro estándar que integra Calc es un filtro elaborado y potente. Pero se le puede sacar más partido utilizando expresiones regulares.
Supongamos que disponemos de una hoja de cálculo de Calc como la que se muestra a continuación y que podemos descargar en nuestro ordenador haciendo clic aquí: Expresiones-regulares-en-filtro-estandar.ods
En esta hoja de cálculo disponemos de la denominación oficial de las poblaciones de la provincia de Valencia en la columna C y del dato de su población en el año 2015 en la columna D
Expresiones regulares en filtros - hoja de cálculo para el ejercicio
Supongamos que necesitamos establecer ciertos filtros para poder mostrar los datos de algunas poblaciones en función de su nombre, como por ejemplo, aquellas poblaciones que comienzan por Beni, las que terminan por Ell, las que terminan bien por AL, EL, IL, OL, UL, ...
Podemos conseguirlo utilizando el filtro estándar con expresiones regulares.
La mayoría de los usuarios no saben como funcionan las expresiones regulares. Así que vamos a estudiar unos ejemplos que nos pueden ayudar a comprender su funcionamiento y uso.
Paso 1: Activar el filtro predeterminado
Hagamos clic en cualquier celda dentro de la lista de poblaciones, preferiblemente en la columna D, y activemos la opción Filtro estándar desde el menú Datos / Más filtros / Filtro estándar....
Calc presentará un diálogo como el mostrado a continuación:
Haremos clic en el botón Opciones (Alt + C) para poder activar las opciones Expresiones regulares (Alt + E), y, si procede, El intervalo contiene etiquetas de columnas (Alt + O).
Paso 2: Aplicar los filtros
Ejemplo 1: Poblaciones cuyo nombre comienza por "Beni"
Deseamos filtrar aquellas poblaciones que comienzan por "Beni". Para ello completaremos en el diálogo la primera línea de criterios de filtrado:
- Seleccionamos en Nombre de campo Denominación oficial
- Seleccionamos en condición la opción =
- En valor escribimos Beni.*
Tras hacer clic en el botón Aceptar, la tabla quedará filtrada por la condición indicada, como se muestra a continuación:
La expresión regular .* significa ninguno o cualquier número de carácteres alfanuméricos en esa posición. Al situarlo tras el texto Beni se comporta como aquellas poblaciones que comienzan por Beni.
Ejemplo 2: Poblaciones cuyo nombre termina por "ell"
Deseamos filtrar aquellas poblaciones que terminan por "ell". Para ello completaremos en el diálogo la primera línea de criterios de filtrado:
- Seleccionamos en Nombre de campo Denominación oficial
- Seleccionamos en condición la opción =
- En valor escribimos .*ell
El resultado es el mostrado a continuación:
La expresión regular .* significa ninguno o cualquier número de caracteres alfanuméricos en esa posición. Al situarlo antecediendo al texto ell se comporta como aquellas poblaciones que terminan por ell.
Veamos más ejemplos:
- Poblaciones cuyo nombre comienza por "Beni"
- En Condición seleccionamos: =
- En Valor escribimos: Beni.*
- La expresión regular que hemos utilizado es: .*
- Equivale a la expresión usando comodines: Beni*
- Poblaciones cuyo nombre termina por "ell"
- En Condición seleccionamos: =
- En Valor escribimos: .*ell$
- La expresión regular que hemos utilizado es: .* $
- Equivale a la expresión usando comodines: *ell
- Poblaciones cuyo nombre contiene "ssa"
- En Condición seleccionamos: =
- En Valor escribimos: .*ssa.*
- La expresión regular que hemos utilizado es: .*
- Equivale a la expresión usando comodines: *ssa*
- Poblaciones cuyo nombre NO comienza por "Beni"
- En Condición seleccionamos: <>
- En Valor escribimos: Beni.*
- La expresión regular que hemos utilizado es: .*
- Equivale a la expresión usando comodines: Beni*
- Poblaciones cuyo nombre NO termina por "ell"
- En Condición seleccionamos: <>
- En Valor escribimos: .*ell$
- La expresión regular que hemos utilizado es: .* $
- Equivale a la expresión usando comodines: *ell
- Poblaciones cuyo nombre NO contiene "ssa"
- En Condición seleccionamos: <>
- En Valor escribimos: .*ssa.*
- La expresión regular que hemos utilizado es: .*
- Equivale a la expresión usando comodines: *ssa*
Ejemplo 3: Poblaciones cuyo nombre comienza por "Beni", contienen cualquier otra letra a continuación, y la siguiente letra es una "a":
Para ello completamos en el diálogo la primera línea de criterios de filtrado:
- Seleccionamos en Nombre de campo Denominación oficial
- Seleccionamos en condición la opción =
- En valor escribimos Beni.a.*
Ejemplo 4: Poblaciones cuyo nombre termina por "al", "el", "il", "ol" o "ul":
Para ello completamos en el diálogo la primera línea de criterios de filtrado:
- Seleccionamos en Nombre de campo Denominación oficial
- Seleccionamos en condición la opción =
- En valor escribimos .*[aeiou]l$
[aeiou] significa que en esa posición contenga una de las letras indicadas.
Más ejemplos:
- Poblaciones cuyo nombre comienza por B, P o R:
- En Condición seleccionamos: =
- En Valor escribimos: [BPR].*
- La expresión regular que hemos utilizado es: [ ] y .*
- Poblaciones cuyo nombre comienza por una letra de la A a la C:
- En Condición seleccionamos: =
- En Valor escribimos: [A-C].*
- La expresión regular que hemos utilizado es: [ - ] y .*
- Poblaciones cuyo nombre contiene algún número:
- En Condición seleccionamos: =
- En Valor escribimos: .*[1-9].*
- La expresión regular que hemos utilizado es: [ - ] y .*
- Poblaciones cuyo nombre comienza por C y contiene una A o una E en segundo lugar:
- En Condición seleccionamos: =
- En Valor escribimos: C[ae].*
- La expresión regular que hemos utilizado es: [ ] y .*
- Poblaciones cuyo nombre comienza por C pero la segunda letra no es ni a ni e:
- En Condición seleccionamos: <>
- En Valor escribimos: C[^ae].*
- La expresión regular que hemos utilizado es: [^ ] y .*
- Poblaciones cuyo nombre comienza por C pero la segunda letra no es una letra en el rango a-f:
- En Condición seleccionamos: <>
- En Valor escribimos: C[^a-f].*
- La expresión regular que hemos utilizado es: [^ - ] y .*
Expresiones regulares versus comodines
Si utilizamos carácteres comodines en otras aplicaciones, esta lista puede servirnos como guía de equivalencia entre los dos sistemas:
- Ningún o cualquier número de carácteres
- Expresión con comodines: *
- Expresión regular equivalente: .*
- Y si es ... termina por: Añadimos $ al final
- Un carácter en esa posición
- Expresión con comodines: ?
- Expresión regular equivalente: .
- Y si es ... termina por: Añadimos $ al final
- Alguno de los carácteres
- Expresión con comodines: [ ]
- Expresión regular equivalente: [ ]
- Y si es ... termina por: Añadimos $ al final
- Rango de carácteres
- Expresión con comodines: [ - ]
- Expresión regular equivalente: [ - ]
- Y si es ... termina por: Añadimos $ al final
- No contiene alguno de los carácteres
- Expresión con comodines: [! ]
- Expresión regular equivalente: [^ ]
- Y si es ... termina por: Añadimos $ al final
- No contiene alguno de los caracteres del rango
- Expresión con comodines: [! - ]
- Expresión regular equivalente: [^ - ]
- Y si es ... termina por: Añadimos $ al final