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:

El editor de fórmulas muestra la fórmula =EXTRAER.REGEX(A2,"(?<=Nombre: )(.*)(?= Fecha)".

En esta fórmula, se usan los siguientes argumentos:

  • cadena-origen: A2, la celda que contiene los datos que quieres para buscar un nombre.

  • cadena-expresión-regular: "(?<=Nombre: )(.*)(?= Fecha)", una expresión regular que busca texto entre las cadenas “Nombre: ” y “ Fecha”.

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:

El editor de fórmulas muestra la fórmula =EXTRAER.REGEX(A2,"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}")

En esta fórmula, se usan los siguientes argumentos:

  • cadena-origen: A2, la celda que contiene los datos que quieres para buscar un correo electrónico.

  • cadena-expresión-regular: "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}", una expresión regular que busca un patrón de direcciones de correo electrónico.

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:

El editor de fórmulas muestra la fórmula =EXTRAER.REGEX(Proveedores::B2,"\w+",FILA(A2)-1).

En esta fórmula, se usan los siguientes argumentos:

  • cadena-origen: Proveedores::B2, la celda que contiene los datos que quieres buscar. En este caso, quieres buscar la lista de esta celda.

  • cadena-expresión-regular: "\w+", una expresión regular que busca una palabra.

  • aparición-correspondencia: FILA(A2)-1. En este caso, hay tres correspondencias para cada EXTRAER.REGEX, y puedes usar otra función, como FILA, para definir la correspondencia específica deseada. FILA(A2) devuelve el número de fila de la celda seleccionada (2) y se incluye -1 para sustraer la fila de cabecera del resultado; de lo contrario, en este ejemplo se devolvería Garbanzos (la segunda correspondencia).

    Si omites aparición-correspondencia, el resultado para cada proveedor siempre es la primera palabra devuelta (Lentejas para Proveedor A, Manzanas para Proveedor B, etc.).

La fórmula anterior se puede modificar fácilmente para completar la tabla para los otros proveedores e ítems.

  • Para devolver otros productos populares para un único proveedor, puedes modificar aparición-correspondencia. Por ejemplo, para devolver Garbanzos, el ítem más popular del Proveedor A, puedes cambiar la referencia de celda en aparición-correspondencia de A2 a A3.

  • Para devolver valores para otro proveedor, puedes modificar cadena-origen. Por ejemplo, para devolver Manzanas, el ítem más popular del Proveedor B, puedes cambiar la referencia de celda en cadena-origen de B2 a B3.

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".

Consulta tambiénREGEX
Morty Proxy This is a proxified and sanitized view of the page, visit original site.
¿Te ha resultado útil?
Límite de caracteres: 250
El límite máximo de caracteres es 250.
Gracias por tus comentarios.
Morty Proxy This is a proxified and sanitized view of the page, visit original site.