INHOUDSOPGAWE
Die tutoriaal verskaf 'n aantal "Excel as bevat"-formulevoorbeelde wat wys hoe om iets in 'n ander kolom terug te gee as 'n teikensel 'n vereiste waarde bevat, hoe om te soek met gedeeltelike passing en toets veelvuldige kriteria met OR as sowel as EN logika.
Een van die mees algemene take in Excel is om te kyk of 'n sel 'n waarde van belang bevat. Watter soort waarde kan dit wees? Net enige teks of nommer, spesifieke teks, of hoegenaamd enige waarde (nie leë sel nie).
Daar bestaan verskeie variasies van "As sel bevat"-formule in Excel, afhangend van presies watter waardes jy wil vind. Oor die algemeen sal jy die IF-funksie gebruik om 'n logiese toets te doen, en een waarde terugstuur wanneer die voorwaarde nagekom word (sel bevat) en/of 'n ander waarde wanneer die voorwaarde nie nagekom word nie (sel bevat nie). Die onderstaande voorbeelde dek die mees algemene scenario's.
As sel enige waarde bevat, dan
Om mee te begin, kom ons kyk hoe om selle te vind wat hoegenaamd enigiets bevat: enige teks, nommer of datum. Hiervoor gaan ons 'n eenvoudige IF-formule gebruik wat na nie-leë selle kyk.
IF( sel"", waarde_om_terug te gee, "")Vir byvoorbeeld, om "Nie leeg nie" in kolom B terug te gee as kolom A se sel in dieselfde ry enige waarde bevat, voer jy die volgende formule in B2 in, en dubbelklik dan die klein groen blokkie in die onderste regterhoek om die formule af te kopieer diekolom:
=IF(A2"", "Not blank", "")
Die resultaat sal soortgelyk soos hierdie lyk:
As sel teks bevat, dan
As jy slegs selle met tekswaardes wil vind wat getalle en datums ignoreer, gebruik dan IF in kombinasie met die ISTEXT-funksie. Hier is die generiese formule om 'n waarde in 'n ander sel terug te gee as 'n teikensel enige teks bevat:
IF(ISTEXT( sel), waarde_om_terug te gee, " ")Gestel, jy wil die woord "ja" in kolom B invoeg as 'n sel in kolom A teks bevat. Om dit te laat doen, plaas die volgende formule in B2:
=IF(ISTEXT(A2), "Yes", "")
As sel getal bevat, dan
Op 'n soortgelyke wyse , kan jy selle identifiseer met numeriese waardes (getalle en datums). Gebruik hiervoor die IF-funksie saam met ISNUMBER:
IF(ISNUMBER( sel), waarde_om_terug te gee, "")Die volgende formule gee "ja" in kolom terug B as 'n ooreenstemmende sel in kolom A enige nommer bevat:
=IF(ISNUMBER(A2), "Yes", "")
As sel spesifieke teks bevat
Vind selle wat sekere teks bevat (of getalle of datums) is maklik. Jy skryf 'n gewone IF-formule wat kontroleer of 'n teikensel die verlangde teks bevat, en tik die teks om terug te keer in die waarde_as_waar -argument.
IF( sel=" teks", waarde_om_terug te gee, "")Om byvoorbeeld uit te vind of sel A2 "appels" bevat, gebruik hierdie formule:
=IF(A2="apples", "Yes", "")
As sel nie spesifieke bevat nieteks
As jy die teenoorgestelde resultaat soek, d.w.s. 'n waarde na 'n ander kolom terugstuur as 'n teikensel nie die gespesifiseerde teks ("appels") bevat nie, doen dan een van die volgende.
Gee 'n leë string ("") in die waarde_as_waar -argument, en teks om terug te keer in die waarde_as_vals argument:
=IF(A2="apples", "", "Not apples")
Of , plaas die "nie gelyk aan" operateur in logiese_toets en teks om terug te gee in waarde_as_waar:
=IF(A2"apples", "Not apples", "")
In elk geval, die formule sal produseer hierdie resultaat:
As sel teks bevat: hooflettersensitiewe formule
Om jou formule te dwing om tussen hoofletters en kleinletters te onderskei, gebruik die PRESIESE funksie wat kontroleer of twee teksstringe presies gelyk is, insluitend die letterkas:
=IF(EXACT(A2,"APPLES"), "Yes", "")
Jy kan ook die modelteksstring in een of ander sel invoer (sê in C1), maak die selverwysing reg met die $-teken ($C$1), en vergelyk die teikensel met daardie sel:
=IF(EXACT(A2,$C$1), "Yes", "")
As sel bevat spesifieke teksstring (gedeeltelike passing)
Ons is klaar met onbenullige take en gaan aan na meer uitdagende en interessante take :) In hierdie voorbeeld neem dit drie verskillende funksies om uit te vind of 'n gegewe karakter of substring deel van die sel is inhoud:
IF(ISNUMBER(SOEK(" teks", sel)), waarde_om_terug te gee,"")Werk van binne na buite , hier is wat die formule doen:
- DieSEARCH-funksie soek vir 'n teksstring, en as die string gevind word, gee die posisie van die eerste karakter, die #VALUE! andersins fout.
- Die ISNUMBER-funksie kontroleer of SEARCH geslaag of misluk het. As SEARCH enige nommer opgelewer het, gee ISNUMBER WAAR terug. As SEARCH 'n fout tot gevolg het, gee ISNUMBER ONWAAR terug.
- Laastens gee die IF-funksie die gespesifiseerde waarde terug vir selle wat TRUE in die logiese toets het, 'n leë string ("") anders.
En nou, kom ons kyk hoe hierdie generiese formule in werklike werkblaaie werk.
As sel sekere teks bevat, plaas 'n waarde in 'n ander sel
Gestel jy het 'n lys van bestellings in kolom A en jy wil bestellings met 'n spesifieke identifiseerder vind, sê "A-". Die taak kan met hierdie formule uitgevoer word:
=IF(ISNUMBER(SEARCH("A-",A2)),"Valid","")
In plaas daarvan om die string in die formule te hardkodeer, kan jy dit in 'n aparte sel (E1) invoer, die verwysing daardie sel in jou formule :
=IF(ISNUMBER(SEARCH($E$1,A2)),"Valid","")
Vir die formule om korrek te werk, maak seker dat die adres van die sel wat die string bevat met die $-teken (absolute selverwysing) sluit.
As sel spesifieke teks bevat, kopieer dit na 'n ander kolom
As jy die inhoud van die geldige selle iewers anders wil kopieer, verskaf bloot die adres van die geëvalueerde sel (A2) in die waarde_as_waar argument:
=IF(ISNUMBER(SEARCH($E$1,A2)),A2,"")
Die skermkiekie hieronder wys die resultate:
Assel bevat spesifieke teks: hooflettersensitiewe formule
In beide bogenoemde voorbeelde is die formules hoofletter-onsensitief. In situasies wanneer jy met hooflettersensitiewe data werk, gebruik die FIND-funksie in plaas van SEARCH om die karakterkas te onderskei.
Byvoorbeeld, die volgende formule sal slegs bestellings met die hoofletter "A-" identifiseer en kleinletters ignoreer " a-".
=IF(ISNUMBER(FIND("A-",A2)),"Valid","")
As sel een van baie teksstringe bevat (OF logika)
Om selle te identifiseer wat ten minste bevat een van baie dinge waarna jy soek, gebruik een van die volgende formules.
INDIEN OF IS GETAL SOEK formule
Die mees voor die hand liggende benadering sal wees om vir elke substring individueel na te gaan en die OF-funksie te hê gee WAAR in die logiese toets van die IF-formule as ten minste een substring gevind word:
IF(OF(ISNUMBER(SOEK(" string1", sel)), ISNUMBER (SOEK(" string2", sel))), waarde_om_terug te gee, "")Gestel jy het 'n lys SKU's in kolom A en jy wil diegene vind wat óf "rok" óf "romp" insluit. Jy kan dit laat doen deur hierdie formule te gebruik:
=IF(OR(ISNUMBER(SEARCH("dress",A2)),ISNUMBER(SEARCH("skirt",A2))),"Valid ","")
Die formule werk redelik goed vir 'n paar items, maar dit is beslis nie die manier om gaan as jy vir baie dinge wil kyk. In hierdie geval sal 'n beter benadering wees om die SUMPRODUCT-funksie te gebruik soos in die volgende voorbeeld getoon.
SUMPRODUCT ISNUMBER SOEK formule
As jyom met veelvuldige teksstringe te handel, sal die soektog na elke string individueel jou formule te lank en moeilik maak om te lees. 'n Meer elegante oplossing sou wees om die ISNUMBER SEARCH-kombinasie in die SUMPRODUCT-funksie in te sluit, en kyk of die resultaat groter as nul is:
SUMPRODUCT(--ISNUMBER(SEARCH( stringe, sel)))>0Om byvoorbeeld uit te vind of A2 enige van die woorde wat in selle D2:D4 ingevoer is bevat, gebruik hierdie formule:
=SUMPRODUCT(--ISNUMBER(SEARCH($D$2:$D$4,A2)))>0
Alternatiewelik, jy kan 'n benoemde reeks skep wat die stringe bevat om na te soek, of die woorde direk in die formule verskaf:
=SUMPRODUCT(--ISNUMBER(SEARCH({"dress","skirt","jeans"},A2)))>0
In elk geval, die resultaat sal soortgelyk wees aan hierdie:
Om die afvoer meer gebruikersvriendelik te maak, kan jy die bogenoemde formule in die IF-funksie nes en jou eie teks terugstuur in plaas van die WAAR/ONWAAR waardes:
=IF(SUMPRODUCT(--ISNUMBER(SEARCH($D$2:$D$4,A2)))>0, "Valid", "")
Hoe hierdie formule werk
In die kern gebruik jy ISNUMBER saam met SOEK soos verduidelik in die vorige voorbeeld. In hierdie geval word die soekresultate voorgestel in die vorm van 'n skikking soos {TRUE;FALSE;FALSE}. As 'n sel ten minste een van die gespesifiseerde substringe bevat, sal daar TRUE in die skikking wees. Die dubbel unêre operateur (--) dwing die WAAR / ONWAAR waardes tot 1 en 0, onderskeidelik, en lewer 'n skikking soos {1;0;0}. Laastens tel die SUMPRODUCT-funksie die getalle bymekaar, en ons kies selle uit waar die resultaat groter as nul is.
Assel bevat verskeie stringe (EN logika)
In situasies wanneer jy selle wil vind wat al die gespesifiseerde teksstringe bevat, gebruik die reeds bekende ISNUMBER SOEK-kombinasie saam met IF AND:
IF(AND(ISNUMBER) (SOEK(" string1", sel)), ISNUMBER(SOEK(" string2", sel))), value_to_return,"")Jy kan byvoorbeeld SKU's vind wat beide "rok" en "blou" bevat met hierdie formule:
=IF(AND(ISNUMBER(SEARCH("dress",A2)),ISNUMBER(SEARCH("blue",A2))),"Valid ","")
Of jy kan tik die stringe in aparte selle en verwys na daardie selle in jou formule:
=IF(AND(ISNUMBER(SEARCH($D$2,A2)),ISNUMBER(SEARCH($E$2,A2))),"Valid ","")
As 'n alternatiewe oplossing, kan jy die voorkoms van elke string tel en kontroleer as elke telling groter as nul is:
=IF(AND(COUNTIF(A2,"*dress*")>0,COUNTIF(A2,"*blue*")>0),"Valid","")
Die resultaat sal presies wees soos in die skermkiekie hierbo gewys.
Hoe om verskillende resultate op grond van selwaarde terug te gee
In die geval dat jy elke sel in die teikenkolom met 'n ander lys items wil vergelyk en 'n ander waarde vir elke passing wil teruggee, gebruik een van die volgende benaderings.
Genes IF'e
Die logika van die geneste IF-formule is so eenvoudig soos hierdie: jy gebruik 'n aparte IF-funksie om elke toestand te toets, en gee verskillende waardes terug na gelang van die resultate van daardie toetse.
IF( sel=" soek_teks1", " terugstuur_ teks1", IF( sel=" opsoek_teks2", " return_ teks2", IF( sel=" soek_teks3", " terugstuur_ teks3", "")))Gestel jy het 'n lys items in kolom A en jy wil hul afkortings in kolom B hê. Om dit te laat doen, gebruik die volgende formule:
=IF(A2="apple", "Ap", IF(A2="avocado", "Av", IF(A2="banana", "B", IF(A2="lemon", "L", ""))))
Vir volledige besonderhede oor geneste IF se sintaksis en logika, sien asseblief Excel geneste IF - veelvuldige voorwaardes in 'n enkele formule.
Opsoekformule
As jy op soek is na 'n meer kompakte en beter verstaanbare formule, gebruik die OPSOEK-funksie met opsoek- en terugkeerwaardes wat as vertikale skikkingkonstantes verskaf word:
OPSOEK( sel, {" opsoek_teks1";" opsoek_teks2";" soek_teks3";...}, {" terugsending_ teks1";" terugsending_ teks2";" return_ text3";...})Vir akkurate resultate, maak seker dat jy die opsoekwaardes in alfabetiese volgorde lys, van A tot Z.
=LOOKUP(A2,{"apple";"avocado";"banana";"lemon"},{"Ap";"Av";"B";"L"})
Vergeleke met geneste IF's, het die Opsoekformule nog een voordeel - dit verstaan die jokertekens en kan dus gedeeltelike passings identifiseer.
Byvoorbeeld, as kolom A 'n paar soorte bevat van piesangs, kan jy "*piesang*" opsoek en dieselfde afkorting ("B") vir al sulke selle laat terugstuur:
=LOOKUP(A2,{"apple";"avocado";"*banana*";"lemon"},{"Ap";"Av";"B";"L"})
Vir meer inligting, sien asseblief Opsoekformule as 'n alternatief vir geneste IF's.
Vlookup-formule
Wanneer daar met 'n veranderlike datastel gewerk word, kan dit geriefliker wees om 'n lys passings in aparte in te voer selle en herwin hulle deur 'n Vlookup-formule te gebruik,bv.:
=VLOOKUP(A2, $D$2:$E$5, 2,FALSE )
Vir meer inligting, sien asseblief Excel VLOOKUP-tutoriaal vir beginners.
Dit is hoe jy kyk of 'n sel bevat enige waarde of spesifieke teks in Excel. Volgende week gaan ons voortgaan om na Excel se As-sel formules te kyk en leer hoe om relevante selle te tel of op te som, hele rye wat daardie selle bevat, te kopieer of te verwyder, en meer. Bly asseblief ingeskakel!
Oefenwerkboek
Excel as sel bevat - formulevoorbeelde (.xlsx-lêer)