"Excel": suskaičiuokite ląsteles, kuriose yra tam tikro teksto (tiksli ir dalinė atitiktis)

  • Pasidalinti
Michael Brown

Šioje pamokoje parodyta, kaip "Excel" programoje suskaičiuoti langelių su tam tikru tekstu skaičių. Rasite tikslaus atitikimo, dalinio atitikimo ir filtruotų langelių formulių pavyzdžių.

Praėjusią savaitę apžvelgėme, kaip "Excel" skaičiuoti langelius su tekstu, t. y. visus langelius su bet kokiu tekstu. Analizuodami dideles informacijos dalis, taip pat galite norėti sužinoti, kiek langelių yra tam tikro teksto. Šioje pamokoje paaiškinta, kaip tai padaryti paprastai.

    Kaip suskaičiuoti langelius su konkrečiu tekstu "Excel" programoje

    "Microsoft Excel" turi specialią sąlyginiam ląstelių skaičiavimui skirtą funkciją COUNTIF. Viskas, ką turite padaryti, tai pateikti tikslinę teksto eilutę eilutėje kriterijai argumentas.

    Pateikiame bendrą "Excel" formulę, pagal kurią galima suskaičiuoti ląstelių, kuriose yra tam tikro teksto, skaičių:

    COUNTIF (diapazonas, " tekstas ")

    Toliau pateiktame pavyzdyje parodyta, kaip ji veikia. Tarkime, turite elementų ID sąrašą A2:A10 ir norite suskaičiuoti langelių su konkrečiu ID skaičių, tarkime, "AA-01". Įveskite šią eilutę į antrąjį argumentą ir gausite šią paprastą formulę:

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

    Kad naudotojai galėtų skaičiuoti langelius su bet kokiu tekstu, nekeisdami formulės, įveskite tekstą į iš anksto nustatytą langelį, pavyzdžiui, D1, ir pateikite langelio nuorodą:

    =COUNTIF(A2:A10, D1)

    Pastaba. "Excel" COUNTIF funkcija yra Atskirų raidžių , t. y. ji neskiria raidžių raidžių dydžio. Norėdami skirtingai traktuoti didžiąsias ir mažąsias raides, naudokite šią raidėms jautrią formulę.

    Kaip suskaičiuoti langelius su tam tikru tekstu (dalinis atitikimas)

    Ankstesniame pavyzdyje aptarta formulė tiksliai atitinka kriterijus. Jei ląstelėje yra bent vienas skirtingas simbolis, pavyzdžiui, papildomas tarpas pabaigoje, tai nebus tikslus atitikimas ir tokia ląstelė nebus įskaičiuota.

    Norėdami rasti ląstelių, kurių turinyje yra tam tikras tekstas, skaičių, kriterijuose naudokite simbolį, t. y. žvaigždutę (*), reiškiančią bet kokią simbolių seką arba simbolius. Priklausomai nuo jūsų tikslo, formulė gali atrodyti taip.

    Suskaičiuokite langelius, kuriuose yra tam tikras tekstas pati pradžia :

    COUNTIF (diapazonas, " tekstas *")

    Suskaičiuoti langelius, kuriuose yra tam tikras tekstas bet kuri pozicija :

    COUNTIF(diapazonas, "* tekstas *")

    Pavyzdžiui, norėdami sužinoti, kiek langelių diapazone A2:A10 prasideda raide "AA", naudokite šią formulę:

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

    Jei norite gauti ląstelių, kuriose bet kurioje pozicijoje yra "AA", skaičių, naudokite šią funkciją:

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

    Jei norite, kad formulės būtų dinamiškesnės, pakeiskite užkoduotas eilutes ląstelių nuorodomis.

    Skaičiuoti langelius, kurie prasideda tam tikru tekstu:

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

    Skaičiuoti langelius, kuriuose bet kur yra tam tikras tekstas:

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

    Toliau pateiktoje ekrano nuotraukoje matyti rezultatai:

    Suskaičiuoti langelius, kuriuose yra tam tikras tekstas (atsižvelgiama į mažąsias ir didžiąsias raides)

    Jei reikia atskirti didžiąsias ir mažąsias raides, COUNTIF funkcija neveiks. Priklausomai nuo to, ar ieškote tikslaus, ar dalinio atitikmens, turėsite sudaryti kitą formulę.

    Didžiosios raidės jautri formulė ląstelėms su konkrečiu tekstu skaičiuoti (tiksli atitiktis)

    Norėdami suskaičiuoti langelių su tam tikru tekstu, kuriame atpažįstamas teksto atvejis, skaičių, naudosime SUMPRODUCT ir EXACT funkcijų derinį:

    SUMPRODUCT(--EXACT(" tekstas ", diapazonas ))

    Kaip veikia ši formulė:

    • EXACT palygina kiekvieną diapazono langelį su pavyzdiniu tekstu ir grąžina TRUE ir FALSE reikšmių masyvą: TRUE reiškia tikslius atitikimus, o FALSE - visus kitus langelius. dvigubas vienaskaita ) verčia TRUE ir FALSE į 1 ir 0.
    • SUMPRODUCT susumuoja visus masyvo elementus. Ši suma yra 1, o tai yra atitikmenų skaičius.

    Pavyzdžiui, norėdami sužinoti A2:A10 langelių, kuriuose yra D1 tekstas ir kuriuose didžiosios ir mažosios raidės yra skirtingi simboliai, skaičių, naudokite šią formulę:

    =SUMPRODUKTAS(--TIKSLUS(D1, A2:A10))

    Didžiosios raidės jautri formulė ląstelėms su tam tikru tekstu skaičiuoti (dalinis atitikimas)

    Norėdami sukurti formulę, kuri gali rasti dominančią teksto eilutę bet kurioje ląstelės vietoje, naudojame 3 skirtingas funkcijas:

    SUMPRODUCT(--(ISNUMBER(FIND(" tekstas ", diapazonas ))))

    Kaip veikia ši formulė:

    • Funkcija FIND kiekviename intervalo langelyje ieško tikslinio teksto. Jei pavyksta, funkcija grąžina pirmojo simbolio poziciją, priešingu atveju - #VALUE! klaidą. Aiškumo dėlei mums nereikia žinoti tikslios pozicijos, bet koks skaičius (priešingai nei klaida) reiškia, kad langelyje yra tikslinis tekstas.
    • Funkcija ISNUMBER tvarko FIND grąžinamą skaičių ir klaidų masyvą ir konvertuoja skaičius į TRUE, o visa kita - į FALSE. Dvigubas vienaženklis simbolis (--) logines reikšmes paverčia vienetais ir nuliais.
    • SUMPRODUCT sumuoja 1 ir 0 masyvą ir grąžina langelių, kurių turinyje yra nurodytas tekstas, skaičių.

    Norėdami išbandyti formulę naudodami realius duomenis, raskime, kiek A2:A10 langelių turi D1 įvestą dalinę eilutę:

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

    Grąžinamas 3 elementų skaičius (langeliuose A2, A3 ir A6):

    Kaip suskaičiuoti filtruotas ląsteles su konkrečiu tekstu

    Skaičiuoti matomi elementai filtruotame sąraše, reikės naudoti 4 ar daugiau funkcijų derinį, priklausomai nuo to, ar norite tikslaus, ar dalinio atitikimo. Kad būtų lengviau suprasti pavyzdžius, pirmiausia trumpai apžvelkime pradinius duomenis.

    Tarkime, turite lentelę su Užsakymo ID B stulpelyje ir Kiekis C stulpelyje, kaip parodyta toliau pateiktame paveikslėlyje. Šiuo metu jus domina tik kiekiai, didesni už 1, todėl atitinkamai filtravote lentelę. Klausimas - kaip suskaičiuoti išfiltruotus langelius su tam tikru id?

    Formulė, skirta filtruotoms ląstelėms su konkrečiu tekstu (tiksli atitiktis) skaičiuoti

    Norėdami suskaičiuoti filtruotus langelius, kurių turinys tiksliai atitinka pavyzdinę teksto eilutę, naudokite vieną iš šių formulių:

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

    Kai F1 yra pavyzdžio tekstas, o B2:B10 - skaičiuotinos ląstelės.

    Kaip veikia šios formulės:

    Abiejų formulių esmė - atlikti 2 patikrinimus:

    1. Nustatykite matomas ir paslėptas eilutes. Šiuo tikslu naudokite funkciją SUBTOTAL su function_num Argumentas nustatytas į 103. Norėdami SUBTOTAL pateikti visas atskirų langelių nuorodas, naudokite INDIRECT (pirmoje formulėje) arba OFFSET, ROW ir MIN kombinaciją (antroje formulėje). Kadangi siekiame rasti matomas ir paslėptas eilutes, nėra labai svarbu, į kurį stulpelį (mūsų pavyzdyje - A). Šios operacijos rezultatas yra 1 ir 0 masyvų masyvas, kuriame vienetai reiškia matomas eilutes.eilutės ir nuliai - paslėptos eilutės.
    2. Raskite langelius, kuriuose yra pateiktas tekstas. Šiuo tikslu palyginkite teksto pavyzdį (F1) su langelių intervalu (B2:B10). Šios operacijos rezultatas yra TRUE ir FALSE reikšmių masyvas, kuris, naudojant dvigubą vienaženklį operatorių, paverčiamas 1 ir 0.

    Galiausiai funkcija SUMPRODUCT padaugina abiejų masyvų elementus, esančius tose pačiose pozicijose, ir susumuoja gautą masyvą. Kadangi dauginant iš nulio gaunamas nulis, galutiniame masyve yra tik tie langeliai, kuriuose abiejuose masyvuose yra 1. 1 suma yra filtruotų langelių, kuriuose yra nurodytas tekstas, skaičius.

    Filtruotų ląstelių su tam tikru tekstu skaičiavimo formulė (dalinis atitikimas)

    Norėdami suskaičiuoti filtruotus langelius, kuriuose tam tikras tekstas yra langelio turinio dalis, pakeiskite pirmiau pateiktas formules taip: Užuot lyginę pavyzdinį tekstą su langelių intervalu, ieškokite tikslinio teksto naudodami ISNUMBER ir FIND, kaip paaiškinta viename iš ankstesnių pavyzdžių:

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

    Dėl to formulės padės rasti tam tikrą teksto eilutę bet kurioje ląstelės vietoje:

    Pastaba. Funkcija SUBTOTAL su 103 function_num argumentas identifikuoja visus paslėptus langelius, išfiltruotus ir paslėptus rankiniu būdu. Dėl to pirmiau pateiktos formulės skaičiuoja tik matomos ląstelės nepriklausomai nuo to, kaip nematomi langeliai buvo paslėpti. Jei norite neįtraukti tik išfiltruotų langelių, bet įtraukti rankiniu būdu paslėptus langelius, naudokite 3 už function_num .

    Štai kaip "Excel" programoje suskaičiuoti ląstelių su tam tikru tekstu skaičių. Dėkoju, kad perskaitėte, ir tikiuosi, kad kitą savaitę susitiksime mūsų tinklaraštyje!

    Galimi atsisiuntimai

    "Excel" formulės ląstelėms su tam tikru tekstu skaičiuoti

    Michaelas Brownas yra atsidavęs technologijų entuziastas, mėgstantis supaprastinti sudėtingus procesus naudojant programinės įrangos įrankius. Turėdamas daugiau nei dešimtmetį patirtį technologijų pramonėje, jis patobulino savo įgūdžius „Microsoft Excel“ ir „Outlook“, taip pat „Google“ skaičiuoklėse ir dokumentuose. Michaelio tinklaraštis skirtas dalytis savo žiniomis ir patirtimi su kitais, jame pateikiami lengvai įgyvendinami patarimai ir vadovėliai, kaip pagerinti produktyvumą ir efektyvumą. Nesvarbu, ar esate patyręs profesionalas, ar pradedantysis, Michaelo tinklaraštyje rasite vertingų įžvalgų ir praktinių patarimų, kaip išnaudoti visas šių pagrindinių programinės įrangos įrankių galimybes.