EXTRAER.REGEX
La función EXTRAER.REGEX devuelve las coincidencias o los grupos de captura en la coincidencia de una expresión regular dada en una cadena de origen.
EXTRAER.REGEX(cadena-origen; cadena-expresión-regular; aparición-correspondencia; aparición-grupo-captura)
cadena-origen: Valor de cadena que debe coincidir.
cadena-expresión-regular: Un valor de cadena que representa una expresión regular, utilizado para compararlo con la cadena-origen.
aparición-correspondencia: Valor entero opcional que indica qué aparición se debe devolver, si hay varias apariciones. Se aceptan los valores enteros negativos y permiten acceder a las apariciones en sentido inverso, de forma que -1 es la última aparición, y así sucesivamente. Si se da un 0, se devuelve una matriz de todas las apariciones. Si se omite, se devuelve la primera aparición.
aparición-grupo-captura: Un valor entero opcional que indica qué grupo de captura incluido en una aparición se debe devolver, en caso de que la expresión regular incluya grupos de captura. No se aceptan los valores negativos. Si se devuelve 0, se devuelve una matriz de todas las apariciones. Si se omite, se devuelve la aparición completa.
Notas
La cadena-expresión-regular debe cumplir la norma ICU.
Ejemplos |
---|
Si tienes datos que no encajan fácilmente con las filas y columnas de una hoja de cálculo, puedes usar EXTRAER.REGEX para simplificarlos. Por ejemplo, en la siguiente tabla, los datos tienen cierta estructura, pero puede ser difícil separarlos manualmente en varias celdas para revisarlos. |
A | |
---|---|
1 | Reseñas de usuarios |
2 | Correo electrónico: jtalma@icloud.com Nombre: Julie Talma Fecha: 17/05/2021 |
3 | Correo electrónico: danny_rico@icloud.com Nombre: Danny Rico Fecha: 02/06/2021 |
Para solucionarlo, puedes añadir más columnas a la tabla para Nombre, “Correo electrónico”, Puntuación y Fecha. A continuación, puedes usar EXTRAER.REGEX para hallar los datos que quieres y devolverlos en la celda. Por ejemplo, podrías introducir la siguiente fórmula para devolver un nombre: En esta fórmula, se usan los siguientes argumentos:
Esta fórmula se puede repetir para cada fila de datos para devolver el nombre de cada persona que ha respondido a la encuesta cambiando cadena-origen para que coincida con otras celdas que contengan información de reseña de usuario. |
Para solucionarlo, puedes añadir más columnas a la tabla para Nombre, “Correo electrónico”, Puntuación y Fecha. A continuación, puedes usar EXTRAER.REGEX para hallar los datos que quieres y devolverlos en la celda. Por ejemplo, podrías introducir la siguiente fórmula: En esta fórmula, se usan los siguientes argumentos:
|
Reorganizar datos de una lista con aparición-correspondencia |
---|
A veces, puedes tener datos como la tabla de abajo (Proveedores), que agrupa valores en una celda: |
Proveedor | Ítem |
---|---|
A | Lentejas, Garbanzos, Limas |
B | Manzanas, Naranjas, Limones |
C | Quinoa, Arroz, Chía |
Para separar los valores por tienda y jerarquía, primero puedes crear una tabla nueva, como la siguiente: |
A | B | C | D | |
---|---|---|---|---|
1 | Jerarquía | A | B | C |
2 | 1 | |||
3 | 2 | |||
4 | 3 |
Para devolver Lentejas, el ítem que encabeza la jerarquía para Proveedor A, puedes usar una fórmula como esta en la celda B2 de la nueva tabla: En esta fórmula, se usan los siguientes argumentos:
|
La fórmula anterior se puede modificar fácilmente para completar la tabla para los otros proveedores e ítems.
|
Ejemplos adicionales |
---|
Supongamos que A1 contiene "marina@example.com juan@example.ca miguel@example.de". =EXTRAER.REGEX(A1; "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})") devuelve "marina@example.com". =EXTRAER.REGEX(A1; "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})"; 2) devuelve "juan@example.ca". =EXTRAER.REGEX(A1; "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})"; -1) devuelve "miguelexample.de". =EXTRAER.REGEX(A1; "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})"; 1; 1) devuelve "marina". =EXTRAER.REGEX(A1; "([A-Z0-9a-z._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,4})"; 2; 2) devuelve "example.ca". |