Función SEARCH
Devuelve el número del carácter en el que se encuentra por primera vez un carácter o cadena de texto concretos, si se lee de izquierda a derecha. En la búsqueda no se distinguen mayúsculas y minúsculas, y se distinguen caracteres acentuados.
Sintaxis
SEARCH(<find_text>, <within_text>[, [<start_num>][, <NotFoundValue>]])
Parámetros
Término |
Definición |
---|---|
find_text |
Texto que desea encontrar. Puede usar caracteres comodín, el signo de interrogación (?) y asterisco (*), en find_text. Un signo de interrogación devuelve cualquier carácter individual; un asterisco devuelve cualquier secuencia de caracteres. Si desea buscar un signo de interrogación o un asterisco real, escriba la tilde (~) antes del carácter. |
within_text |
Texto en el que desea buscar find_text o una columna que lo contiene. |
start_num |
(opcional) Posición del carácter en within_text en la que desea empezar a buscar. Si se omite, es 1. |
NotFoundValue |
(Opcional) el valor que se devuelve cuando la operación no encuentra una subcadena coincidentes, normalmente 0, -1 o BLANK(). |
Valor devuelto
Número de la posición inicial de la primera cadena de texto a partir del primer carácter de la segunda cadena de texto.
Comentarios
La función de búsqueda no distingue mayúsculas y minúsculas. Si se busca "N", se encontrará la primera aparición de 'N' o 'n'.
La función de búsqueda distingue los caracteres acentuados. Si se busca "á", se encontrará la primera aparición de 'á', pero no 'a', 'à' ni sus versiones en mayúsculas 'A', 'Á'.
Mediante esta función, puede buscar una cadena de texto dentro de otra y obtener la posición donde empieza la primera cadena.
Puede utilizar la función SEARCH para determinar la ubicación de un carácter o cadena de texto dentro de otra cadena de texto y, a continuación, utilizar la función MID para devolver el texto, o la función REPLACE para cambiarlo.
Si no se puede encontrar find_text en within_text, la fórmula devuelve un error. Este comportamiento es como Excel, que devuelve #VALOR si no se encuentra la subcadena. Los valores NULL en within_text se interpretarán como una cadena vacía en este contexto.
Esta función de DAX puede devolver distintos resultados cuando se usa en un modelo implementado y consultado en modo DirectQuery. Para obtener más información acerca de las diferencias de semántica en el modo DirectQuery, vea https://go.microsoft.com/fwlink/?LinkId=219171.
Ejemplo: buscar dentro de una cadena
Descripción
La siguiente fórmula encuentra la posición de la letra "n" en la palabra "printer".
Código
=SEARCH("n","printer")
Comentarios
La fórmula devuelve 4 porque "n" es el cuarto carácter de la palabra "printer".
Ejemplo: buscar dentro de una columna
Descripción
Puede usar una referencia de columna como un argumento para SEARCH. La siguiente fórmula encuentra la posición del carácter "-" (guión) en la columna [PostalCode].
Código
=SEARCH("-",[PostalCode])
Comentarios
El resultado devuelto es una columna con números, indicando la posición de índice del guión.
Ejemplo: control de errores con SEARCH
Descripción
La fórmula del ejemplo anterior generará un error si la cadena de búsqueda no se encuentra en cada fila de la columna de origen. Por consiguiente, el ejemplo siguiente muestra cómo utilizar IFERROR con la función SEARCH para asegurarse de que se devuelve un resultado válido para cada fila.
La siguiente fórmula encuentra la posición del carácter "-" dentro de la columna y devuelve -1 si no se encuentra la cadena.
Código
= IFERROR(SEARCH("-",[PostalCode]),-1)
Comentarios
Observe que el tipo de datos del valor que usa como salida de error debe coincidir con el tipo de datos del tipo de salida de cuando no hay error. En este caso, usted proporciona un valor numérico para ser generado en caso de un error porque SEARCH devuelve un valor entero.
Sin embargo, también podría devolver un espacio en blanco (cadena vacía) usando BLANK() como el segundo argumento de IFERROR.