SEARCH

La función SEARCH devuelve la posición (contando desde la izquierda) de la primera aparición de un carácter o de una cadena de texto dentro de otra cadena de texto, pudiendo especificarse a partir de qué carácter comienza la búsqueda. Esta función es sensible a acentos pero insensible a mayúsculas y minúsculas.

Si se desea realizar una búsqueda sensible a mayúsculas y minúsculas (además de a letras acentuadas), deberá usarse la función FIND.

Sintaxis

SEARCH(
    find_text,
    within_text
    [, [start_num]
    [, NotFoundValue]]
)

Parámetros
  • find_text: Carácter o cadena de caracteres buscado o nombre de la columna de la que se extrairá la cadena de texto a buscar. Es posible utilizar los comodines "?" (representando un único carácter) y "*" (representando un número indefinido de caracteres, incluyendo la cadena vacía). Si se desea buscar una interrogación o un asterisco, habrá que precederlo del carácter "~" (carácter que, en un teclado español, puede obtenerse presionando la tecla AltGr y, sin soltarla, la tecla "4" del teclado principal -no del teclado numérico-, soltando ambas teclas y presionando, a continuación, la barra espaciadora.
  • within_text: Cadena de texto en la que se va a realizar la búsqueda de find_text o nombre de la columna en la que se realizará la búsqueda.
  • start_num: Argumento opcional. Posición inicial en within_text (a contar desde la izquierda) a partir de la que se realizará la búsqueda, ignorando los caracteres anteriores. Si se omite se considerará conteniendo el valor 1 (es decir, la búsqueda se realizará desde el primer carácter).
  • NotFoundValue: Argumento opcional. Valor numérico a devolver cuando no se encuentra la cadena de texto, valor que normalmente será -1 o 0 (valores que no pueden confundirse nunca con los devueltos por la función cuando se encuentra la cadena buscada) o BLANK (valor vacío).
Valor devuelto

La función SEARCH devuelve un número entero que representa la posición del texto buscado a contar desde la izquierda (el primer carácter ocupa la posición 1) tras ignorar el contenido de los caracteres indicados por el argumento opcional start_num.

Información adicional

La función SEARCH no distingue entre mayúsculas y minúsculas. De esta forma, las siguientes dos fórmulas:

=SEARCH("n", columnName)

=SEARCH("N", columnName)

...devolverán los mismos resultados.

Sin embargo, los caracteres acentuados sí son considerados caracteres diferentes. De esta forma, todas las siguientes fórmulas devolverán resultados distintos:

=SEARCH("a", columnName)

=SEARCH("á", columnName)

=SEARCH("à", columnName)

Función SEARCH: Ejemplo de uso

(Power BI está convirtiendo la "A" de la segunda fila y la "N" de la undécima en minúsculas por algún error desconocido)

Puede verse que la "ñ" se considera también una letra diferente a la "n".

Salvo que se incluya el cuarto argumento (NotFoundValue), si no se encuentra el texto buscado, SEARCH devuelve un error (y éste se mostrará en todas las filas aun cuando solo algunas no contengan la cadena de texto buscada).

Esta función DAX puede devolver diferentes resultados cuando se usa en un modelo desplegado e interrogado en modo DirectQuery.

Ejemplos

En el siguiente ejemplo se utiliza la función SEARCH para buscar la primera aparición de la letra "a" en la columna "Manufacturer" que contiene nombres de fabricantes, y la función MID para devolver tres caracteres a partir de dicha posición. La función MID se incluye como primer argumento de la función IFERROR para que, en aquellos casos en los que no se encuentre ninguna letra "a" (ocasiones en las que la función SEARCH va a devolver un error), se devuelva un resultado controlado (un Blank en este caso).

Nótese que, en la última fila, la letra "a" ocupa la última posición de la cadena de texto, por lo que MID solo devuelve esa letra (lo que puede confirmarse viendo la longitud del texto extraído).

Función SEARCH: Ejemplo de uso

En el siguiente ejemplo se utiliza la función SEARCH para buscar la primera aparición de la letra "a" en la columna "Manufacturer", y la función REPLACE para sustituir dos caracteres a partir de dicha posición por "__". Nuevamente, se recurre a la función IFERROR para devolver un resultado controlado en caso de error.

Nótese cómo, en la última fila, la letra "a" ocupa la última posición de la cadena de texto por lo que, al reemplazarla por "__", la longitud de la cadena devuelta por REPLACE aumenta en uno.

Función SEARCH: Ejemplo de uso

Funciones relacionadas
Categoría
Texto
Enviado por admin el Lun, 03/12/2018 - 23:42