Excel: konkreetset teksti sisaldavate lahtrite loendamine (täpne ja osaline vastavus)

  • Jaga Seda
Michael Brown

Õpetus näitab, kuidas lugeda Excelis teatud tekstiga lahtrite arvu. Leiad valemite näited täpse vaste, osalise vaste ja filtreeritud lahtrite jaoks.

Eelmisel nädalal vaatasime, kuidas lugeda Excelis teksti sisaldavaid lahtreid, st kõiki lahtreid, kus on mis tahes teksti. Suurte infokogumite analüüsimisel võite ka teada saada, mitu lahtrit sisaldab konkreetset teksti. Selles õpetuses selgitatakse, kuidas seda lihtsal viisil teha.

    Kuidas lugeda Excelis konkreetse tekstiga lahtreid

    Microsoft Excelil on spetsiaalne funktsioon lahtrite tingimuslikuks loendamiseks, funktsioon COUNTIF. Kõik, mida peate tegema, on anda sihttekstistringile kriteeriumid argument.

    Siin on üldine Exceli valem, et lugeda konkreetset teksti sisaldavate lahtrite arvu:

    COUNTIF(range, " tekst ")

    Järgnev näide näitab seda praktikas. Oletame, et teil on nimekiri elemendi ID-dest A2:A10 ja te soovite lugeda lahtrite arvu, millel on teatud id, näiteks "AA-01". Kirjutage see string teise argumendiks ja te saate selle lihtsa valemi:

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

    Selleks, et võimaldada kasutajatel lugeda lahtreid mis tahes tekstiga ilma valemit muutmata, sisestage tekst etteantud lahtrisse, näiteks D1, ja sisestage lahtriviide:

    =COUNTIF(A2:A10, D1)

    Märkus. Exceli funktsioon COUNTIF on suur- ja väiketähelepanuta , mis tähendab, et see ei tee vahet suur- ja väiketähtede vahel. Suur- ja väiketähtede erinevaks käsitlemiseks kasutage seda suur- ja väiketähtedest sõltuvat valemit.

    Kuidas lugeda teatud tekstiga lahtreid (osaline vaste)

    Eelmises näites käsitletud valem vastab kriteeriumidele täpselt. Kui lahtris on vähemalt üks erinev märk, näiteks lisavälja lõpus, ei ole see täpne vaste ja sellist lahtrit ei arvestata.

    Selliste lahtrite arvu leidmiseks, mille sisuks on teatud tekst, kasutage oma kriteeriumides jokerimärke, nimelt tärni (*), mis tähistab mis tahes järjestust või märki. Sõltuvalt teie eesmärgist võib valem välja näha näiteks järgmiselt.

    Loendage lahtrid, mis sisaldavad konkreetset teksti väga algus :

    COUNTIF(range, " tekst *")

    Loeb lahtrid, mis sisaldavad teatud teksti mis tahes positsioon :

    COUNTIF(range, "* tekst *")

    Näiteks, et leida, mitu lahtrit vahemikus A2:A10 algab sõnaga "AA", kasutage seda valemit:

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

    Et saada lahtrite arvu, mis sisaldavad "AA" mis tahes positsioonis, kasutage seda:

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

    Valemite dünaamilisemaks muutmiseks asendage kõvakooditud stringid lahtriviidetega.

    Teatud tekstiga algavate lahtrite loendamiseks:

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

    Loendada lahtrid, kus on teatud tekst kuskil:

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

    Tulemused on näha alloleval ekraanipildil:

    Loeb lahtrid, mis sisaldavad konkreetset teksti (sõltuvalt suur- ja väiketähendusest).

    Olukorras, kus on vaja teha vahet suur- ja väiketähtedel, ei tööta funktsioon COUNTIF. Sõltuvalt sellest, kas otsite täpset või osalist vastet, peate koostama erineva valemi.

    Suur- ja väiketähtedega valem, et lugeda konkreetse tekstiga lahtreid (täpne kokkulangevus)

    Teatud tekstiga lahtrite arvu loendamiseks, mis tuvastavad tekstikasti, kasutame funktsioonide SUMPRODUCT ja EXACT kombinatsiooni:

    SUMPRODUCT(--EXACT(" tekst ", vahemik ))

    Kuidas see valem töötab:

    • EXACT võrdleb iga lahtrit vahemikus näidistekstiga ja tagastab TRUE ja FALSE väärtuste massiivi, kusjuures TRUE tähistab täpset kokkulangevust ja FALSE kõiki teisi lahtreid. Topeltühend (nn topelt unaarne ) sunnib TRUE ja FALSE muutuma 1 ja 0 väärtusteks.
    • SUMPRODUCT summeerib kõik massiivi elemendid. See summa on 1-de arv, mis on kokkulangevuste arv.

    Näiteks selleks, et saada A2:A10 lahtrite arv, mis sisaldavad teksti D1 ja käsitlevad suur- ja väiketähti erinevate tähtedena, kasutage seda valemit:

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

    Suur- ja väiketähtedega valem, et lugeda konkreetse tekstiga lahtreid (osaline vastavus)

    Selleks, et luua suur- ja väiketähelepanu arvestav valem, mis suudab leida huvipakkuva tekstijada ükskõik kus lahtris, kasutame 3 erinevat funktsiooni:

    SUMPRODUCT(--(ISNUMBER(FIND(" tekst ", vahemik ))))

    Kuidas see valem töötab:

    • Suur- ja väiketähtedega funktsioon FIND otsib sihtteksti igas vahemiku lahtris. Kui see õnnestub, siis tagastab funktsioon esimese tähemärgi positsiooni, vastasel juhul #VALUE! viga. Selguse huvides ei pea me teadma täpset positsiooni, mis tahes number (erinevalt veast) tähendab, et lahter sisaldab sihtteksti.
    • Funktsioon ISNUMBER töötleb FIND-i poolt tagastatud numbrite ja vigade massiivi ning teisendab numbrid TRUE'ks ja kõik muu FALSE'ks. Topeltühik (--) sunnib loogilised väärtused ühikuteks ja nullideks.
    • SUMPRODUCT summeerib 1 ja 0 väärtuste massiivi ja tagastab nende lahtrite arvu, mille sisuks on määratud tekst.

    Et testida valemit reaalsete andmete peal, leiame, mitu lahtrit A2:A10 sisaldab D1-s sisendiks olevat alajaotust:

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

    Ja see annab tulemuseks 3 (lahtrid A2, A3 ja A6):

    Kuidas lugeda filtreeritud lahtreid konkreetse tekstiga

    Lugeda nähtavad esemed filtreeritud loendis, peate kasutama 4 või enama funktsiooni kombinatsiooni, sõltuvalt sellest, kas soovite täpset või osalist kokkulangevust. Et näiteid oleks lihtsam jälgida, vaatame kõigepealt lühidalt lähteandmeid.

    Eeldades, et teil on tabel koos Tellimuse ID-d veerus B ja Kogus veerus C, nagu on näidatud alloleval pildil. Hetkel olete huvitatud ainult kogustest, mis on suuremad kui 1, ja filtreerisite oma tabelit vastavalt sellele. Küsimus on - kuidas lugeda filtreeritud lahtrid, millel on konkreetne id?

    Valem, mis loeb filtreeritud lahtrid konkreetse tekstiga (täpne kokkulangevus)

    Selleks, et lugeda filtreeritud lahtrid, mille sisu vastab täpselt näidistekstijoonele, kasutage ühte järgmistest valemitest:

    =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)))

    Kus F1 on näidistekst ja B2:B10 on loendatavad lahtrid.

    Kuidas need valemid toimivad:

    Mõlema valemi keskmes on 2 kontrolli:

    1. Määrake nähtavad ja varjatud read. Selleks kasutate funktsiooni SUBTOTAL koos funktsiooniga function_num argumendi väärtuseks 103. Et anda SUBTOTALile kõik üksikud lahtriviited, kasutage kas INDIRECT (esimeses valemis) või kombinatsiooni OFFSET, ROW ja MIN (teises valemis). Kuna meie eesmärk on leida nähtavad ja varjatud read, ei ole tegelikult oluline, millisele veerule viidata (meie näites A). Selle operatsiooni tulemus on massiivi 1 ja 0, kus üksikud tähistavad nähtavaid ridu.read ja nullid - varjatud read.
    2. Leidke lahtrid, mis sisaldavad antud teksti. Selleks võrrelge näidisteksti (F1) lahtrite vahemikuga (B2:B10). Selle operatsiooni tulemuseks on TRUE ja FALSE väärtuste massiivi, mis on topelt-unaarse operaatori abil muudetud 1 ja 0 väärtusteks.

    Lõpuks korrutab funktsioon SUMPRODUCT kahe massiivi elemendid samades positsioonides ja seejärel summeerib saadud massiivi. Kuna nulliga korrutamine annab nulli, siis on lõplikus massiivi ainult need lahtrid, mille arv on mõlemas massiiviosas 1. 1-de summa on nende filtreeritud lahtrite arv, mis sisaldavad määratud teksti.

    Valem filtreeritud lahtrite lugemiseks konkreetse tekstiga (osaline vastavus)

    Selleks, et lugeda filtreeritud lahtrid, mis sisaldavad teatud teksti osana lahtri sisust, muutke ülaltoodud valemeid järgmiselt. Selle asemel, et võrrelda näidisteksti lahtrite vahemikuga, otsige sihtteksti, kasutades ISNUMBER ja FIND, nagu on selgitatud ühes eelnevas näites:

    =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))))

    Selle tulemusena leiavad valemid antud tekstijada mis tahes positsioonis lahtris:

    Märkus. Funktsioon SUBTOTAL koos 103-ga on function_num argument, tuvastab kõik peidetud lahtrid, mis on käsitsi välja filtreeritud ja peidetud. Selle tulemusena loevad ülaltoodud valemid ainult nähtavad rakud sõltumata sellest, kuidas nähtamatud lahtrid olid peidetud. Kui soovite välistada ainult filtreeritud lahtrid, kuid lisada käsitsi peidetud lahtrid, kasutage 3 jaoks function_num .

    Nii saab lugeda Excelis teatud tekstiga lahtrite arvu. Tänan teid lugemise eest ja loodan, et näeme teid järgmisel nädalal meie blogis!

    Saadaolevad allalaadimised

    Exceli valemid teatud tekstiga lahtrite loendamiseks

    Michael Brown on pühendunud tehnoloogia entusiast, kelle kirg on tarkvaratööriistade abil keerukate protsesside lihtsustamine. Rohkem kui kümneaastase kogemusega tehnoloogiatööstuses on ta lihvinud oma oskusi Microsoft Excelis ja Outlookis, samuti Google Sheetsis ja Docsis. Michaeli ajaveebi eesmärk on jagada oma teadmisi ja teadmisi teistega, pakkudes hõlpsasti järgitavaid näpunäiteid ja õpetusi tootlikkuse ja tõhususe parandamiseks. Olenemata sellest, kas olete kogenud professionaal või algaja, pakub Michaeli ajaveebi väärtuslikke teadmisi ja praktilisi nõuandeid nende oluliste tarkvaratööriistade maksimaalseks kasutamiseks.