Excel: tel selle wat spesifieke teks bevat (presiese en gedeeltelike passing)

  • Deel Dit
Michael Brown

Die tutoriaal wys hoe om die aantal selle met sekere teks in Excel te tel. Jy sal formulevoorbeelde vir presiese passing, gedeeltelike passing en gefiltreerde selle vind.

Verlede week het ons gekyk hoe om selle met teks in Excel te tel, wat beteken alle selle met enige teks. Wanneer jy groot stukke inligting ontleed, wil jy dalk ook weet hoeveel selle spesifieke teks bevat. Hierdie tutoriaal verduidelik hoe om dit op 'n eenvoudige manier te doen.

    Hoe om selle met spesifieke teks in Excel te tel

    Microsoft Excel het 'n spesiale funksie om selle voorwaardelik te tel, die COUNTIF-funksie. Al wat jy hoef te doen is om die teikenteksstring in die kriteria -argument te verskaf.

    Hier is 'n generiese Excel-formule om die aantal selle te tel wat spesifieke teks bevat:

    COUNTIF(reeks, " teks")

    Die volgende voorbeeld wys dit in aksie. Gestel jy het 'n lys item-ID's in A2:A10 en jy wil die aantal selle met 'n spesifieke id tel, sê "AA-01". Tik hierdie string in die tweede argument, en jy sal hierdie eenvoudige formule kry:

    =COUNTIF(A2:A10, "AA-01")

    Om jou gebruikers in staat te stel om selle met enige gegewe teks te tel sonder dat dit nodig is om die formule te verander, voer die teks in 'n voorafbepaalde sel, sê D1, en verskaf die selverwysing:

    =COUNTIF(A2:A10, D1)

    Let wel. Die Excel COUNTIF-funksie is hoofletter-onsensitief , wat beteken dat dit nie letterletters onderskei nie. Om hoofletters en kleinletters te behandelkarakters anders, gebruik hierdie hooflettersensitiewe formule.

    Hoe om selle met sekere teks te tel (gedeeltelike passing)

    Die formule wat in die vorige voorbeeld bespreek is, pas presies by die kriteria. As daar ten minste een verskillende karakter in 'n sel is, byvoorbeeld 'n ekstra spasie aan die einde, sal dit nie presies ooreenstem nie en so 'n sel sal nie getel word nie.

    Om die aantal selle wat sekere teks as deel van hul inhoud bevat, gebruik jokertekens in jou kriteria, naamlik 'n asterisk (*) wat enige volgorde of karakters verteenwoordig. Afhangende van jou doelwit, kan 'n formule soos een van die volgende lyk.

    Tel selle wat spesifieke teks bevat aan die heel begin :

    COUNTIF(reeks, " teks *")

    Tel selle wat sekere teks bevat in enige posisie :

    COUNTIF(reeks, "* teks *")

    Byvoorbeeld, om te vind hoeveel selle in die reeks A2:A10 begin met "AA", gebruik hierdie formule:

    =COUNTIF(A2:A10, "AA*")

    Om die telling van selle te kry wat "AA" in enige posisie bevat, gebruik hierdie een:

    =COUNTIF(A2:A10, "*AA*")

    Om die formules meer dinamies te maak, vervang die hardgekodeerde stringe met selverwysings.

    Om selle te tel wat met sekere teks begin:

    =COUNTIF(A2:A10, D1&"*")

    Om selle met sekere teks enige plek daarin te tel:

    =COUNTIF(A2:A10, "*"&D1&"*")

    Die skermkiekie hieronder wys die resultate:

    Tel selle wat spesifieke teks bevat (hooflettergevoelig)

    In situasie wanneer jy moet onderskeihoofletters en kleinletters, sal die COUNTIF-funksie nie werk nie. Afhangende van of jy 'n presiese of gedeeltelike passing soek, sal jy 'n ander formule moet bou.

    Kase-sensitiewe formule om selle met spesifieke teks te tel (presiese passing)

    Om te tel die aantal selle met sekere teks wat die tekskas herken, sal ons 'n kombinasie van die SUMPRODUCT en EXACT funksies gebruik:

    SUMPRODUCT(--EXACT(" teks ", reeks ))

    Hoe hierdie formule werk:

    • EXACT vergelyk elke sel in die reeks met die voorbeeldteks en gee 'n reeks WAAR en ONWAAR waardes terug, WAAR verteenwoordig presiese passings en ONWAAR alle ander selle. 'n Dubbele koppelteken (genoem 'n dubbel unary ) dwing WAAR en ONWAAR in 1'e en 0'e.
    • SOMPRODUK som al die elemente van die skikking op. Daardie som is die aantal 1'e, wat die aantal passings is.

    Om byvoorbeeld die aantal selle in A2:A10 te kry wat die teks in D1 bevat en hoofletters en kleinletters verskillend hanteer karakters, gebruik hierdie formule:

    =SUMPRODUCT(--EXACT(D1, A2:A10))

    Kase-sensitiewe formule om selle met spesifieke teks te tel (gedeeltelike passing)

    Om te bou 'n hooflettersensitiewe formule wat 'n teksstring van belang op enige plek in 'n sel kan vind, gebruik ons ​​3 verskillende funksies:

    SUMPRODUCT(--(ISNUMBER(FIND(" teks ", reeks ))))

    Hoe hierdie formule werk:

    • Die hooflettersensitiewe FIND-funksie soekvir die teikenteks in elke sel van die reeks. As dit slaag, gee die funksie die posisie van die eerste karakter terug, anders die #VALUE! fout. Ter wille van duidelikheid hoef ons nie die presiese posisie te weet nie, enige getal (teenoor fout) beteken dat die sel die doelteks bevat.
    • Die ISNUMBER-funksie hanteer die skikking van getalle en foute wat teruggestuur word. deur FIND en skakel die getalle om na WAAR en enigiets anders na ONWAAR. 'n Dubbel unêre (--) dwing die logiese waardes in ene en nulle.
    • SOMPRODUK som die skikking van 1'e en 0'e op en gee die telling van selle terug wat die gespesifiseerde teks as deel van hul inhoud bevat.

    Om die formule op werklike data te toets, kom ons vind hoeveel selle in A2:A10 die substring-invoer in D1 bevat:

    =SUMPRODUCT(--(ISNUMBER(FIND(D1, A2:A10))))

    En dit gee 'n telling van 3 (selle A2, A3 en A6):

    Hoe om gefiltreerde selle met spesifieke teks te tel

    Om sigbare items te tel in 'n gefiltreerde lys, sal jy 'n kombinasie van 4 of meer funksies moet gebruik, afhangende van of jy 'n presiese of gedeeltelike passing wil hê. Om die voorbeelde makliker te maak om te volg, kom ons kyk eers vinnig na die brondata.

    Gestel jy het 'n tabel met Bestelling-ID's in kolom B en Hoeveelheid in kolom C soos in die prent hieronder. Op die oomblik stel jy net belang in hoeveelhede groter as 1 en jy het jou tabel dienooreenkomstig gefiltreer. Dievraag is – hoe tel jy gefiltreerde selle met 'n spesifieke id?

    Formule om gefiltreerde selle met spesifieke teks te tel (presiese passing)

    Om gefiltreer te tel selle waarvan die inhoud presies ooreenstem met die voorbeeldteksstring, gebruik een van die volgende formules:

    =SUMPRODUCT(SUBTOTAL(103, INDIRECT("A"&ROW(A2:A10))), --(B2:B10=F1))

    =SUMPRODUCT(SUBTOTAL(103, OFFSET(A2:A10, ROW(A2:A10) - MIN(ROW(A2:A10)),,1)), --(B2:B10=F1))

    Waar F1 die voorbeeldteks is en B2:B10 die selle is om te tel.

    Hoe hierdie formules werk:

    In die kern van beide formules voer jy 2 kontroles uit:

    1. Identifiseer sigbare en versteekte rye. Hiervoor gebruik jy die SUBTOTAAL-funksie met die funksie_getal -argument op 103 gestel. Om al die individuele selverwysings na SUBTOTAAL te verskaf, gebruik óf INDIREK (in die eerste formule) óf 'n kombinasie van OFFSET, ROW en MIN (in die tweede formule). Aangesien ons daarop gemik is om sigbare en versteekte rye op te spoor, maak dit nie regtig saak watter kolom na verwys word nie (A in ons voorbeeld). Die resultaat van hierdie bewerking is 'n skikking van 1'e en 0'e waar ene sigbare rye en nulle verteenwoordig - versteekte rye.
    2. Vind selle wat gegewe teks bevat. Vergelyk hiervoor die voorbeeldteks (F1) met die reeks selle (B2:B10). Die resultaat van hierdie bewerking is 'n reeks WAAR en ONWAAR waardes, wat met die hulp van die dubbel unêre operateur tot 1'e en 0'e gedwing word.

    Laastens vermenigvuldig die SUMPRODUCT-funksie die elemente van die twee skikkings in dieselfde posisies, en som dan die resulterende skikking op.Omdat vermenigvuldiging met nul nul gee, het slegs die selle wat 1 in beide skikkings het 1 in die finale skikking. Die som van 1'e is die aantal gefiltreerde selle wat die gespesifiseerde teks bevat.

    Formule om gefiltreerde selle met spesifieke teks te tel (gedeeltelike passing)

    Om gefiltreerde selle wat sekere teks bevat te tel as deel van die selvinhoud, verander die bogenoemde formules op die volgende manier. In plaas daarvan om die voorbeeldteks met die reeks selle te vergelyk, soek vir die teikenteks deur ISNUMBER en FIND te gebruik soos verduidelik in een van die vorige voorbeelde:

    =SUMPRODUCT(SUBTOTAL(103, INDIRECT("A"&ROW(A2:A10))), --(ISNUMBER(FIND(F1, B2:B10))))

    =SUMPRODUCT(SUBTOTAL(103, OFFSET(A2:A10, ROW(A2:A10) - MIN(ROW(A2:A10)),,1)), --(ISNUMBER(FIND(F1, B2:B10))))

    As gevolg hiervan sal die formules 'n gegewe teksstring op enige posisie in 'n sel opspoor:

    Let wel. Die SUBTOTAAL-funksie met 103 in die funksie_nommer -argument, identifiseer alle versteekte selle, uitgefiltreer en met die hand weggesteek. As gevolg hiervan tel die bogenoemde formules slegs sigbare selle ongeag hoe onsigbare selle versteek is. Om slegs uitgefiltreerde selle uit te sluit, maar die wat met die hand versteek is, in te sluit, gebruik 3 vir funksie_nommer .

    Dit is hoe om die aantal selle met sekere teks in Excel te tel. Ek bedank jou vir die lees en hoop om jou volgende week op ons blog te sien!

    Beskikbare aflaaie

    Excel-formules om selle met sekere teks te tel

    Michael Brown is 'n toegewyde tegnologie-entoesias met 'n passie om komplekse prosesse te vereenvoudig deur sagteware-instrumente te gebruik. Met meer as 'n dekade se ondervinding in die tegnologiebedryf, het hy sy vaardighede in Microsoft Excel en Outlook, sowel as Google Sheets en Docs, opgeskerp. Michael se blog is toegewy daaraan om sy kennis en kundigheid met ander te deel, en verskaf maklik-om-te volg wenke en tutoriale vir die verbetering van produktiwiteit en doeltreffendheid. Of jy nou 'n ervare professionele persoon of 'n beginner is, Michael se blog bied waardevolle insigte en praktiese raad om die meeste uit hierdie noodsaaklike sagteware-nutsmiddels te kry.