Táboa de contidos
O titorial explica a sintaxe das funcións BUSCAR e BUSCAR de Excel e ofrece exemplos de fórmulas de usos avanzados non triviais.
No último artigo, tratamos os conceptos básicos de Excel. Cadro de diálogo Buscar e substituír. En moitas situacións, non obstante, pode querer que Excel busque e extraia datos doutras celas automaticamente segundo os seus criterios. Entón, vexamos máis de cerca o que ofrecen as funcións de busca de Excel.
Función BUSCAR de Excel
A función BUSCAR en Excel úsase para devolver a posición de un carácter ou subcadea específicos dentro dunha cadea de texto.
A sintaxe da función Find de Excel é a seguinte:
FIND(buscar_texto, dentro_texto, [núm_inicio])Os 2 primeiros argumentos son necesarios, o último é opcional.
- Buscar_texto : o carácter ou subcadea que quere atopar.
- Dentro_de_texto : a cadea de texto para ser buscado dentro. Normalmente ofrécese como referencia de cela, pero tamén pode escribir a cadea directamente na fórmula.
- Núm_inicio - un argumento opcional que especifica a partir de que carácter comezará a busca. Se se omite, a busca comeza a partir do primeiro carácter da cadea dentro_texto.
Se a función FIND non atopa o(s) carácter(s) find_text, un #VALOR! devólvese un erro.
Por exemplo, a fórmula =FIND("d", "find")
devolve 4 porque "d" é a cuarta letra da palabra " atopar ". Fórmula =FIND("a", "find")
de novo, a parte máis complexa é o último argumento que indica á fórmula cantos caracteres devolver. Esa expresión bastante longa no argumento num_chars fai o seguinte:
- Primeiro, atopa a posición do paréntese de peche:
SEARCH(")",A2)
- Despois localiza a posición do paréntese de apertura:
SEARCH("(",A2)
- E despois, calcula a diferenza entre as posicións dos parénteses de peche e de apertura e resta 1 a ese número, porque non queres nin parénteses no resultado:
SEARCH(")",A2)-SEARCH("(",A2))-1
Naturalmente, nada impide que utilices a función BUSCAR de Excel en lugar de BUSCAR, porque a distinción entre maiúsculas e minúsculas non fai diferenza neste exemplo.
Con sorte, isto o tutorial arroxou algo de luz sobre como usar as funcións BUSCAR e BUSCAR en Excel. No seguinte titorial, imos examinar de cerca a función REPLACE, así que estade atentos. Grazas por ler!
Descargar o libro de prácticas
BUSCAR e BUSCAR exemplos de fórmulas
devolve un erro porque non hai "a" en " find".
Función de Excel FIND: cousas para recordar!
Para usar correctamente unha fórmula FIND en Excel, teña en conta os seguintes feitos sinxelos:
- A función FIND é distingue entre maiúsculas e minúsculas . Se está a buscar unha coincidencia que non distinga entre maiúsculas e minúsculas, use a función BUSCAR.
- A función BUSCAR en Excel non permite usar caracteres comodíns .
- Se o argumento find_text contén varios caracteres, a función FIND devolve a posición do primeiro carácter . Por exemplo, a fórmula FIND("ap","feliz") devolve 2 porque "a" na segunda letra da palabra "feliz".
- Se dentro_texto contén varias ocorrencias de find_text, devólvese a primeira aparición. Por exemplo, FIND("l", "ola") devolve 3, que é a posición do primeiro carácter "l" na palabra "ola".
- Se find_text é unha cadea baleira "", a fórmula de Excel FIND devolve o primeiro carácter da cadea de busca.
- A función de Excel FIND devolve o #VALOR! erro se ocorre algún dos seguintes casos:
- Buscar_texto non existe en_texto.
- Número_inicio contén máis caracteres que dentro_texto.
- Número_inicio é 0 (cero) ou un número negativo.
Función de BUSCA de Excel
A función de BUSCA en Excel é moi semellante a BUSCAR, xa que tamén devolve a localización dunha subcadea nunha textocorda. A sintaxe e os argumentos son semellantes aos de FIND:
SEARCH(find_text, within_text, [start_num])A diferenza de FIND, a función SEARCH é insensible entre maiúsculas e minúsculas e permite usar os caracteres comodíns , como se demostra no seguinte exemplo.
E aquí tes un par de fórmulas básicas de BUSCA de Excel:
=SEARCH("market", "supermarket")
devolve 6 porque a subcadea "mercado" comeza no sexto carácter da palabra "supermercado" .
=SEARCH("e", "Excel")
devolve 1 porque "e" é o primeiro carácter da palabra "Excel", ignorando as maiúsculas e minúsculas.
Como BUSCAR, a función BUSCAR de Excel devolve o #VALOR! erro se:
- Non se atopa o valor do argumento find_text.
- O argumento start_num é maior que a lonxitude de dentro_texto.
- Start_num é igual a ou menos que cero.
Ademais neste tutorial, atoparás algúns exemplos de fórmulas máis significativos que demostran como usar a función BUSCA nas follas de cálculo de Excel.
Excel FIND vs. Excel SEARCH
Como xa se mencionou, as funcións BUSCAR e BUSCAR en Excel son moi similares en canto a sintaxe e usos. Porén, teñen un par de diferenzas.
1. BUSCA que distingue entre maiúsculas e minúsculas e BUSCA que non distingue entre maiúsculas e minúsculas
A diferenza máis esencial entre as funcións BUSCA e BUSCAR de Excel é que a BUSCA non distingue entre maiúsculas e minúsculas, mentres que BUSCAR distingue entre maiúsculas e minúsculas.
Por exemplo. , SEARCH("e", "Excel") devolve 1 porque ignora ocaso de "E", mentres que FIND("e", "Excel") devolve 4 porque lle importa o caso.
2. Busca con caracteres comodín
A diferenza de BUSCAR, a función BUSCA de Excel acepta caracteres comodín no argumento find_text:
- Un signo de interrogación (?) coincide cun carácter e
- Un asterisco (*) coincide con calquera serie de caracteres.
Para ver como funciona en datos reais, considere o seguinte exemplo:
Como ves na captura de pantalla anterior, a fórmula SEARCH("función*2013", A2) devolve a posición do primeiro carácter ("f") na subcadea se a cadea de texto á que se refire o argumento dentro_texto contén tanto "función" e "2013", non importa cantos outros personaxes haxa no medio.
Consello. Para atopar un signo de interrogación real (?) ou asterisco (*), escriba unha tilde (~) antes do carácter correspondente.
Exemplos de fórmulas BUSCAR e BUSCAR de Excel
Na práctica, as funcións BUSCAR e BUSCAR de Excel raramente se usan por si soas. Normalmente, utilizaríaas en combinación con outras funcións como MID, LEFT ou RIGHT, e os seguintes exemplos de fórmulas mostran algúns usos da vida real.
Exemplo 1. Busca unha cadea que precede ou segue a un determinado carácter
Este exemplo mostra como pode buscar e extraer todos os caracteres dunha cadea de texto á esquerda ou á dereita dun carácter específico. Para facer as cousas máis fáciles de entender, ten en conta oseguinte exemplo.
Supoño que tes unha columna de nomes (columna A) e queres agrupar o Nome e o Apelido en columnas separadas.
Para obter o nome, podes usar BUSCAR (ou BUSCAR) xunto coa función ESQUERDA:
=LEFT(A2, FIND(" ", A2)-1)
ou
=LEFT(A2, SEARCH(" ", A2)-1)
Como probablemente sabe, a función ESQUERDA de Excel devolve o número especificado de caracteres máis á esquerda nunha cadea. E usa a función FIND para determinar a posición dun espazo (" ") para que a función LEFT saiba cantos caracteres extraer. Nese momento, resta 1 da posición do espazo porque non queres que o valor devolto inclúa o espazo.
Para extraer o apelido, utiliza a combinación das funcións DEREITA, BUSCAR/BUSCAR e LEN. A función LEN é necesaria para obter o número total de caracteres da cadea, dos que resta a posición do espazo:
=RIGHT(A2,LEN(A2)-FIND(" ",A2))
ou
=RIGHT(A2,LEN(A2)-SEARCH(" ",A2))
A seguinte captura de pantalla mostra o resultado:
Para escenarios máis complexos, como extraer un segundo nome ou dividir nomes con sufixos, consulte Como dividir celas en Excel usando fórmulas.
Exemplo 2. Busca a enésima aparición dun determinado carácter nunha cadea de texto
Supoño que tes algunhas cadeas de texto na columna A, digamos unha lista de SKU e queres buscar a posición do 2o guión nunha cadea. A seguinte fórmula funciona como unha delicia:
=FIND("-", A2, FIND("-",A2)+1)
Os dous primeirosos argumentos son fáciles de interpretar: localiza un guión ("-") na cela A2. No terceiro argumento (núm_inicio), incrusta outra función FIND que lle indica a Excel que comece a buscar comezando polo carácter que aparece inmediatamente despois da primeira aparición do guión (FIND("-",A2)+1).
Para devolver a posición da 3ª ocorrencia , incrusta a fórmula anterior no argumento start_num doutra función FIND e engade 2 ao valor devolto:
=FIND("-",A2, FIND("-", A2, FIND("-",A2)+1) +2)
Outra forma máis sinxela de atopar a enésima aparición dun determinado carácter é usar a función BUSCAR de Excel en combinación con CHAR e SUBSTITUTE:
=FIND(CHAR(1),SUBSTITUTE(A2,"-",CHAR(1),3))
Onde "-" é o carácter en cuestión e "3" é a enésima aparición que quere atopar.
Na fórmula anterior, a función SUBSTITUTE substitúe a terceira aparición de guión ("-") por CHAR( 1), que é o carácter non imprimible "Inicio do título" no sistema ASCII. En lugar de CHAR(1), pode usar calquera outro carácter non imprimible do 1 ao 31. E despois, a función FIND devolve a posición dese carácter na cadea de texto. Entón, a fórmula xeral é a seguinte:
FIND(CHAR(1),SUBSTITUTE( celda , carácter ,CHAR(1), Enésima aparición ))A primeira vista, pode parecer que as fórmulas anteriores teñen pouco valor práctico, pero o seguinte exemplo mostrará o útil que son para resolver tarefas reais.
Nota. Lembra que o Excel FINDA función distingue entre maiúsculas e minúsculas. No noso exemplo, isto non fai ningunha diferenza, pero se está a traballar con letras e quere unha coincidencia insensible entre maiúsculas e minúsculas , use a función BUSCAR en lugar de BUSCAR.
Exemplo 3. Extrae N caracteres despois dun determinado carácter
Para localizar unha subcadea dunha determinada lonxitude dentro de calquera cadea de texto, utiliza Excel FIND ou Excel SEARCH en combinación coa función MID. O seguinte exemplo mostra como pode usar esas fórmulas na práctica.
Na nosa lista de SKU, supoñendo que quere atopar os 3 primeiros caracteres que seguen o primeiro guión e tiralos noutra columna.
Se o grupo de caracteres que precede ao primeiro guión sempre contén o mesmo número de elementos (por exemplo, 2 caracteres), esta sería unha tarefa trivial. Podes usar a función MID para devolver 3 caracteres dunha cadea, comezando na posición 4 (omitindo os 2 primeiros caracteres e un guión):
=MID(A2, 4, 3)
Traducido ao inglés, a fórmula di: "Mira na cela A2, comeza a extraer do carácter 4 e devolve 3 caracteres".
Non obstante, nas follas de traballo da vida real, a subcadea que necesitas extraer pode comezar en calquera lugar. dentro da cadea de texto. No noso exemplo, quizais non saibas cantos caracteres preceden ao primeiro guión. Para facer fronte a este desafío, use a función FIND para determinar o punto de inicio da subcadea que quere recuperar.
A fórmula FIND para devolver oA posición do primeiro trazo é a seguinte:
=FIND("-",A2)
Como quere comezar co carácter que segue ao trazo, engade 1 ao valor devolto e incruste a función anterior no segundo argumento. (núm_inicio) da función MID:
=MID(A2, FIND("-",A2)+1, 3)
Neste escenario, a función BUSCA de Excel funciona igual de ben:
=MID(A2, SEARCH("-",A2)+1, 3)
É xenial, pero e se o grupo de caracteres que segue ao primeiro trazo contén un número diferente de caracteres? Hmm... isto pode ser un problema:
Como ves na captura de pantalla anterior, a fórmula funciona perfectamente para as filas 1 e 2. Nas filas 4 e 5, o o segundo grupo contén 4 caracteres, pero só se devolven os 3 primeiros. Nas filas 6 e 7, só hai 2 caracteres no segundo grupo e, polo tanto, a nosa fórmula de busca de Excel devolve un guión despois deles.
Se queres devolver todos os caracteres entre a 1a e a 2a aparición. dun determinado carácter (guión neste exemplo), como procederías? Aquí está a resposta:
=MID(A2, FIND("-",A2)+1, FIND("-", A2, FIND("-",A2)+1) - FIND("-",A2)-1)
Para unha mellor comprensión desta fórmula MID, examinemos os seus argumentos un por un:
- 1o argumento (texto). É a cadea de texto que contén os caracteres que quere extraer, a cela A2 neste exemplo.
- 2o argumento (posición_inicio). Especifica a posición do primeiro carácter que quere extraer. Usa a función FIND para localizar o primeiro guión na cadea e engadir 1 aese valor porque quere comezar co carácter que segue ao guión: FIND("-",A2)+1.
- 3o argumento (num_chars). Especifica o número de caracteres que quere devolver. Na nosa fórmula, esta é a parte máis complicada. Usa dúas funcións FIND (ou SEARCH), unha determina a posición do primeiro guión: FIND("-",A2). E o outro devolve a posición do segundo guión: FIND("-", A2, FIND("-",A2)+1). Despois resta o primeiro do segundo e despois resta 1 porque non queres incluír ningún guión. Como resultado, obterás o número de caracteres entre o 1o e o 2o guión, que é exactamente o que buscamos. Entón, alimenta ese valor ao argumento num_chars da función MID.
De forma similar, podes devolver 3 caracteres despois do segundo guión:
=MID(A2, FIND("-",A2, FIND("-", A2, FIND("-",A2)+1) +2), 3)
Ou, extrae todos os caracteres entre o segundo e o terceiro guións:
=MID(A2, FIND("-", A2, FIND("-",A2)+1)+1, FIND("-",A2, FIND("-", A2, FIND("-",A2)+1) +2) - FIND("-", A2, FIND("-",A2)+1)-1)
Exemplo 4. Busca texto entre parénteses
Supondo que tes algunha cadea de texto longa na columna A e queres buscar e extraer só o texto incluído entre (parénteses).
Para facelo, necesitarías a función MID para devolver o número desexado de caracteres de unha cadea e a función BUSCAR ou BUSCAR de Excel para determinar onde comezar e cantos caracteres extraer.
=MID(A2,SEARCH("(",A2)+1, SEARCH(")",A2)-SEARCH("(",A2)-1)
A lóxica desta fórmula é semellante á que comentamos no anterior exemplo. E