Taula de continguts
El tutorial explica la sintaxi de les funcions TROBAR i CERCAR d'Excel i proporciona exemples de fórmules d'usos avançats no trivials.
En l'últim article vam tractar els conceptes bàsics de l'Excel. Diàleg de cerca i substitució. En moltes situacions, però, és possible que vulgueu que Excel trobi i extreu dades d'altres cel·les automàticament segons els vostres criteris. Així doncs, mirem més de prop el que ofereixen les funcions de cerca d'Excel.
Funció TROBA d'Excel
La funció TROBA a Excel s'utilitza per retornar la posició de un caràcter o subcadena específics dins d'una cadena de text.
La sintaxi de la funció de cerca d'Excel és la següent:
FIND(trobar_text, dins_text, [núm_inici])Els primers 2 arguments són obligatoris, l'últim és opcional.
- Find_text - el caràcter o subcadena que voleu trobar.
- Within_text - la cadena de text a ser buscat dins. Normalment s'ofereix com a referència de cel·la, però també podeu escriure la cadena directament a la fórmula.
- Núm_inici : un argument opcional que especifica a partir de quin caràcter començarà la cerca. Si s'omet, la cerca comença des del primer caràcter de la cadena inside_text.
Si la funció FIND no troba els caràcters find_text, un #VALOR! es retorna l'error.
Per exemple, la fórmula =FIND("d", "find")
retorna 4 perquè "d" és la quarta lletra de la paraula " trobar ". La fórmula =FIND("a", "find")
de nou, la part més complexa és l'últim argument que indica a la fórmula quants caràcters ha de tornar. Aquesta expressió força llarga a l'argument num_chars fa el següent:
- Primer, trobareu la posició del parèntesi de tancament:
SEARCH(")",A2)
- Després localitzeu la posició del parèntesi d'obertura:
SEARCH("(",A2)
- I després, calculeu la diferència entre les posicions dels parèntesis de tancament i d'obertura i resteu 1 d'aquest nombre, perquè no voleu cap parèntesi al resultat:
SEARCH(")",A2)-SEARCH("(",A2))-1
Naturalment, res no us impedeix utilitzar la funció TROBA d'Excel en lloc de CERCAR, perquè la distinció entre majúscules i minúscules no fa cap diferència en aquest exemple.
Tant de bo, això El tutorial ha aportat una mica de llum sobre com utilitzar les funcions CERCAR i TROBAR a Excel. En el següent tutorial, examinarem de prop la funció REPLACE, així que estigueu atents. Gràcies per llegir-lo!
Baixa el quadern de pràctiques
TROBAR i CERCAR exemples de fórmules
retorna un error perquè no hi ha una "a" a " find".
Funció d'Excel FIND: coses per recordar!
Per utilitzar correctament una fórmula FIND a Excel, tingueu en compte els següents fets senzills:
- La funció FIND és distingeix entre majúscules i minúscules . Si cerqueu una coincidència que no distingeix entre majúscules i minúscules, utilitzeu la funció CERCAR.
- La funció TROBA a Excel no permet utilitzar caràcters comodís .
- Si l'argument find_text conté diversos caràcters, la funció FIND retorna la posició del primer caràcter . Per exemple, la fórmula FIND("ap","feliç") retorna 2 perquè "a" a la segona lletra de la paraula "feliç".
- Si dins_text conté diverses ocurrències de find_text, es retorna la primera ocurrència. Per exemple, FIND("l", "hola") retorna 3, que és la posició del primer caràcter "l" a la paraula "hola".
- Si find_text és una cadena buida "", la fórmula EXCEL FIND retorna el primer caràcter de la cadena de cerca.
- La funció Excel FIND retorna el #VALUE! error si es produeix alguna de les situacions següents:
- Find_text no existeix a dins_text.
- Start_num conté més caràcters que dins_text.
- Start_num és 0 (zero) o un nombre negatiu.
Funció CERCAR d'Excel
La funció CERCAR a Excel és molt semblant a TROBAR, ja que també retorna la ubicació d'una subcadena en un nombre negatiu. textcorda. La sintaxi i els arguments són similars als de FIND:
SEARCH(find_text, within_text, [start_num])A diferència de FIND, la funció SEARCH no distingeix entre majúscules i minúscules i permet utilitzar els caràcters comodís. , tal com es demostra a l'exemple següent.
I aquí hi ha un parell de fórmules bàsiques de cerca d'Excel:
=SEARCH("market", "supermarket")
retorna 6 perquè la subcadena "mercat" comença al sisè caràcter de la paraula "supermercat" .
=SEARCH("e", "Excel")
retorna 1 perquè "e" és el primer caràcter de la paraula "Excel", ignorant les majúscules i minúscules.
Com TROBA, la funció CERCADOR d'Excel retorna el #VALOR! error si:
- No es troba el valor de l'argument find_text.
- L'argument num_inici és més gran que la longitud de dins_text.
- Núm_inici és igual a o inferior a zero.
Més endavant en aquest tutorial, trobareu alguns exemples de fórmules més significatius que mostren com utilitzar la funció CERCAR als fulls de treball d'Excel.
Excel FIND vs. Excel SEARCH
Com ja s'ha esmentat, les funcions FIND i SEARCH a Excel són molt semblants pel que fa a la sintaxi i els usos. Tanmateix, sí que tenen un parell de diferències.
1. CERCAR que no distingeix entre majúscules i minúscules
La diferència més essencial entre les funcions CERCAR i TROBAR d'Excel és que CERCAR no distingeix entre majúscules i minúscules, mentre que TROBAR distingeix entre majúscules i minúscules.
Per exemple. , SEARCH("e", "Excel") retorna 1 perquè ignora elcas de "E", mentre que FIND("e", "Excel") retorna 4 perquè li importa el cas.
2. Cerca amb caràcters comodí
A diferència de TROBA, la funció CERCADOR d'Excel accepta caràcters comodí a l'argument find_text:
- Un signe d'interrogació (?) coincideix amb un caràcter i
- Un asterisc (*) coincideix amb qualsevol sèrie de caràcters.
Per veure com funciona amb dades reals, considereu l'exemple següent:
Com veieu a la captura de pantalla anterior, la fórmula SEARCH("funció*2013", A2) retorna la posició del primer caràcter ("f") a la subcadena si la cadena de text a què es refereix l'argument dins_text conté tant "funció" i "2013", no importa quants altres personatges hi hagi entremig.
Consell. Per trobar un signe d'interrogació (?) o asterisc (*) real, escriviu una tilde (~) abans del caràcter corresponent.
Excels de fórmules FIND i SEARCH d'Excel
A la pràctica, les funcions TROBA i CERCA d'Excel poques vegades s'utilitzen per si soles. Normalment, les utilitzaríeu en combinació amb altres funcions, com ara MITJÀ, ESQUERRA o DRET, i els exemples de fórmules següents mostren alguns usos de la vida real.
Exemple 1. Trobeu una cadena que precedeixi o segueix un caràcter determinat
Aquest exemple mostra com podeu trobar i extreure tots els caràcters d'una cadena de text a l'esquerra oa la dreta d'un caràcter específic. Per facilitar la comprensió de les coses, tingueu en compte elexemple següent.
Suposant que teniu una columna de noms (columna A) i voleu agrupar el nom i el cognom en columnes separades.
Per obtenir el primer nom, podeu utilitzar TROBAR (o CERCAR) juntament amb la funció ESQUERRA:
=LEFT(A2, FIND(" ", A2)-1)
o
=LEFT(A2, SEARCH(" ", A2)-1)
Com probablement sabeu, la funció ESQUERRA d'Excel retorna el nombre especificat de caràcters més a l'esquerra d'una cadena. I utilitzeu la funció FIND per determinar la posició d'un espai (" ") per fer que la funció ESQUERRA sàpiga quants caràcters cal extreure. Aleshores, resteu 1 de la posició de l'espai perquè no voleu que el valor retornat inclogui l'espai.
Per extreure el cognom, utilitzeu la combinació de les funcions DRET, TROBAR/CERCAR i LEN. La funció LEN és necessària per obtenir el nombre total de caràcters de la cadena, dels quals resteu la posició de l'espai:
=RIGHT(A2,LEN(A2)-FIND(" ",A2))
o
=RIGHT(A2,LEN(A2)-SEARCH(" ",A2))
La captura de pantalla següent mostra el resultat:
Per a escenaris més complexos, com ara extreure un segon nom o dividir noms amb sufixos, vegeu Com dividir cel·les a Excel utilitzant fórmules.
Exemple 2. Trobeu l'enèsima ocurrència d'un caràcter donat en una cadena de text
Suposant que teniu algunes cadenes de text a la columna A, diguem una llista de SKU i voleu trobar la posició del 2n guió en una cadena. La fórmula següent funciona com una delícia:
=FIND("-", A2, FIND("-",A2)+1)
Les dues primeresels arguments són fàcils d'interpretar: localitzeu un guió ("-") a la cel·la A2. Al tercer argument (núm_inici), incrusteu una altra funció FIND que diu a Excel que comenci a cercar començant pel caràcter que apareix just després de la primera aparença del guió (FIND("-",A2)+1).
Per tornar la posició de la 3a ocurrència , incrusteu la fórmula anterior a l'argument start_num d'una altra funció FIND i afegiu 2 al valor retornat:
=FIND("-",A2, FIND("-", A2, FIND("-",A2)+1) +2)
Una altra i probablement una manera més senzilla de trobar l'enèsima ocurrència d'un caràcter determinat és utilitzar la funció TROBA d'Excel en combinació amb CHAR i SUBSTITUTE:
=FIND(CHAR(1),SUBSTITUTE(A2,"-",CHAR(1),3))
On "-" és el caràcter en qüestió i "3" és l'enèsima aparició que voleu trobar.
A la fórmula anterior, la funció SUBSTITUTE substitueix la tercera aparició del guió ("-") per CHAR( 1), que és el caràcter no imprimible "Inici de l'encapçalament" al sistema ASCII. En lloc de CHAR(1), podeu utilitzar qualsevol altre caràcter no imprimible de l'1 al 31. I després, la funció FIND retorna la posició d'aquest caràcter a la cadena de text. Per tant, la fórmula general és la següent:
FIND(CHAR(1),SUBSTITUTE( cel·la , caràcter ,CHAR(1), Nth occurrence ))A primera vista, pot semblar que les fórmules anteriors tenen poc valor pràctic, però l'exemple següent mostrarà la utilitat que són per resoldre tasques reals.
Nota. Recordeu que l'Excel FINDLa funció distingeix entre majúscules i minúscules. En el nostre exemple, això no fa cap diferència, però si esteu treballant amb lletres i voleu una coincidència no distingeix entre majúscules i minúscules , utilitzeu la funció CERCAR en comptes de TROBAR.
Exemple 3. Extreu N caràcters després d'un caràcter determinat
Per localitzar una subcadena d'una longitud determinada dins de qualsevol cadena de text, utilitzeu Excel FIND o Excel SEARCH en combinació amb la funció MID. L'exemple següent mostra com podeu utilitzar aquestes fórmules a la pràctica.
A la nostra llista de SKU, suposem que voleu trobar els 3 primers caràcters després del primer guió i treure'ls en una altra columna.
Si el grup de caràcters que precedeix el primer guió sempre conté el mateix nombre d'elements (per exemple, 2 caràcters), seria una tasca trivial. Podeu utilitzar la funció MID per retornar 3 caràcters d'una cadena, començant a la posició 4 (ometint els 2 primers caràcters i un guió):
=MID(A2, 4, 3)
Traduït a l'anglès, la fórmula diu: "Mireu a la cel·la A2, comenceu a extreure el caràcter 4 i torneu 3 caràcters".
No obstant això, en els fulls de treball de la vida real, la subcadena que necessiteu extreure podria començar a qualsevol lloc. dins de la cadena de text. Al nostre exemple, és possible que no sàpigues quants caràcters precedeixen el primer guió. Per fer front a aquest repte, utilitzeu la funció FIND per determinar el punt inicial de la subcadena que voleu recuperar.
La fórmula FIND per retornar elLa posició del primer guió és la següent:
=FIND("-",A2)
Com que voleu començar amb el caràcter que segueix el guió, afegiu 1 al valor retornat i incrusteu la funció anterior al segon argument. (número_inici) de la funció MID:
=MID(A2, FIND("-",A2)+1, 3)
En aquest escenari, la funció CERCADOR d'Excel funciona igual de bé:
=MID(A2, SEARCH("-",A2)+1, 3)
És genial, però què passa si el grup de caràcters que segueix el primer guió conté un nombre diferent de caràcters? Hmm... això podria ser un problema:
Com veieu a la captura de pantalla anterior, la fórmula funciona perfectament per a les files 1 i 2. A les files 4 i 5, el el segon grup conté 4 caràcters, però només es retornen els 3 primers. A les files 6 i 7, només hi ha 2 caràcters al segon grup i, per tant, la nostra fórmula de cerca d'Excel retorna un guió després d'ells.
Si voleu tornar tots els caràcters entre la 1a i la 2a ocurrència. d'un caràcter determinat (guió en aquest exemple), com procediríeu? Aquesta és la resposta:
=MID(A2, FIND("-",A2)+1, FIND("-", A2, FIND("-",A2)+1) - FIND("-",A2)-1)
Per a una millor comprensió d'aquesta fórmula MID, examinem els seus arguments un per un:
- 1r argument (text). És la cadena de text que conté els caràcters que voleu extreure, cel·la A2 d'aquest exemple.
- 2n argument (posició_inici). Especifica la posició del primer caràcter que voleu extreure. Utilitzeu la funció TROBAR per localitzar el primer guió de la cadena i afegir-hi 1aquest valor perquè voleu començar amb el caràcter que segueix el guió: FIND("-",A2)+1.
- 3r argument (num_cars). Especifica el nombre de caràcters que voleu tornar. A la nostra fórmula, aquesta és la part més complicada. Utilitzeu dues funcions FIND (o SEARCH), una determina la posició del primer guió: FIND("-",A2). I l'altre retorna la posició del segon guió: FIND("-", A2, FIND("-",A2)+1). A continuació, resteu el primer del segon, i després resteu 1 perquè no voleu incloure cap guió. Com a resultat, obtindreu el nombre de caràcters entre el 1r i el 2n guions, que és exactament el que busquem. Per tant, introduïu aquest valor a l'argument num_chars de la funció MID.
De manera similar, podeu retornar 3 caràcters després del segon guió:
=MID(A2, FIND("-",A2, FIND("-", A2, FIND("-",A2)+1) +2), 3)
O extreu tots els caràcters entre el segon i el tercer guions:
=MID(A2, FIND("-", A2, FIND("-",A2)+1)+1, FIND("-",A2, FIND("-", A2, FIND("-",A2)+1) +2) - FIND("-", A2, FIND("-",A2)+1)-1)
Exemple 4. Cerqueu text entre parèntesis
Suposant que teniu una cadena de text llarga a la columna A i voleu trobar i extreure només el text inclòs entre (parèntesis).
Per fer-ho, necessitareu la funció MID per retornar el nombre desitjat de caràcters de una cadena i la funció TROBA o CERCAR d'Excel per determinar per on començar i quants caràcters cal extreure.
=MID(A2,SEARCH("(",A2)+1, SEARCH(")",A2)-SEARCH("(",A2)-1)
La lògica d'aquesta fórmula és semblant a la que hem comentat a l'anterior exemple. I