"Excel" COUNTIF ir COUNTIFS su OR logika

  • Pasidalinti
Michael Brown

Pamokoje paaiškinta, kaip naudoti "Excel" funkcijas COUNTIF ir COUNTIFS, kad suskaičiuotumėte langelius, kuriuose yra kelios sąlygos OR, pvz., jei ląstelėje yra X, Y arba Z.

Kaip visi žino, "Excel" funkcija COUNTIF skirta skaičiuoti ląsteles pagal vieną kriterijų, o COUNTIFS įvertina kelis kriterijus, naudodama AND logiką. Tačiau ką daryti, jei jūsų užduočiai reikia OR logikos - kai pateikiamos kelios sąlygos, bet kuri iš jų gali sutapti ir būti įtraukta į skaičiavimą?

Šią užduotį galima išspręsti keliais būdais, ir šiame vadovėlyje visi jie bus išsamiai aptarti. Pavyzdžiai reiškia, kad turite gerų žinių apie abiejų funkcijų sintaksę ir bendrąją paskirtį. Jei ne, galbūt norėsite pradėti nuo pagrindų peržiūrėjimo:

"Excel" COUNTIF funkcija - skaičiuoja langelius su vienu kriterijumi.

"Excel" funkcija COUNTIFS - skaičiuoja langelius su keliais AND kriterijais.

Dabar, kai visi yra viename lape, pasinerkime į darbą:

    Skaičiuokite ląsteles su OR sąlygomis "Excel

    Šiame skirsnyje aprašomas paprasčiausias scenarijus - skaičiuojamos ląstelės, atitinkančios bet kurią (bent vieną) iš nurodytų sąlygų.

    1 formulė. COUNTIF + COUNTIF

    Paprasčiausias būdas suskaičiuoti langelius, kuriuose yra viena ar kita reikšmė (Countif a arba b ) yra parašyti įprastą COUNTIF formulę, kad būtų galima suskaičiuoti kiekvieną elementą atskirai, o tada sudėti rezultatus:

    COUNTIF( diapazonas , kriterijus1 ) + COUNTIF( diapazonas , kriterijus2 )

    Pavyzdžiui, sužinokime, kiek A stulpelio langelių yra "obuoliai" arba "bananai":

    =COUNTIF(A:A, "obuoliai") + COUNTIF(A:A, "bananai")

    Kad formulė veiktų greičiau, realiuose darbalapiuose patartina dirbti su intervalais, o ne su ištisais stulpeliais. Kad nereikėtų atnaujinti formulės kaskart pasikeitus sąlygoms, įrašykite dominančius elementus iš anksto nustatytose ląstelėse, pavyzdžiui, F1 ir G1, ir pateikite nuorodas į tas ląsteles. Pavyzdžiui:

    =COUNTIF(A2:A10, F1) + COUNTIF(A2:A10, G1)

    Šis metodas puikiai tinka keliems kriterijams, tačiau sudėjus tris ar daugiau COUNTIF funkcijų, formulė taptų per daug sudėtinga. Tokiu atveju geriau rinktis vieną iš toliau pateiktų alternatyvų.

    2 formulė. COUNTIF su masyvo konstanta

    Čia pateikiama kompaktiškesnė "Excel" formulės SUMIF su OR sąlygomis versija:

    SUM(COUNTIF( diapazonas , { kriterijus1 , kriterijus2 , kriterijus3 , ...}))

    Formulė sudaryta taip:

    Pirmiausia visas sąlygas sudėkite į masyvo konstantą - atskirus elementus atskirkite kableliais, o visą masyvą uždarykite lenktiniais skliaustais, pavyzdžiui, {"obuoliai", "bananai", "citrinos"}.

    Tada įtraukite masyvo konstantą į kriterijai įprastos COUNTIF formulės argumentas: COUNTIF(A2:A10, {"obuoliai", "bananai", "citrinos"})

    Galiausiai iškraipykite SUM funkcijos COUNTIF formulę. Tai būtina, nes COUNTIF grąžins 3 atskirus "obuolių", "bananų" ir "citrinų" skaičius, o jums reikia juos sudėti.

    Visa mūsų formulė yra tokia:

    =SUMA(COUNTIF(A2:A10,{"obuoliai", "bananai", "citrinos"}))

    Jei norite pateikti savo kriterijus kaip diapazono nuorodos , turėsite įvesti formulę naudodami Ctrl + Shift + Enter, kad ji taptų masyvo formule. Pavyzdžiui:

    =SUM(COUNTIF(A2:A10,F1:H1))

    Toliau pateiktoje ekrano nuotraukoje atkreipkite dėmesį į lenktus skliaustelius - tai akivaizdžiausias masyvo formulės požymis "Excel" programoje:

    3 formulė. SUMPRODUCT

    Kitas būdas skaičiuoti langelius su OR logika "Excel" programoje - taip naudoti funkciją SUMPRODUCT:

    SUMPRODUCT(1*( diapazonas ={ kriterijus1 , kriterijus2 , kriterijus3 , ...}))

    Norint geriau įsivaizduoti logiką, tai taip pat galima užrašyti taip:

    SUMPRODUKTAS(( diapazonas = kriterijus1 ) + ( diapazonas = kriterijus2 ) + ...)

    Formulė tikrina kiekvieną diapazono langelį pagal kiekvieną kriterijų ir grąžina TRUE, jei kriterijus tenkinamas, ir FALSE, jei ne. Kaip tarpinį rezultatą gausite keletą TRUE ir FALSE reikšmių masyvų (masyvų skaičius lygus jūsų kriterijų skaičiui). Tada vienoje pozicijoje esantys masyvų elementai sudedami, t. y. visų masyvų pirmieji elementai, antrieji elementai ir t. t.pridėjimo operacija logines reikšmes paverčia skaičiais, todėl galiausiai gaunamas vienas masyvas, sudarytas iš 1 (vienas iš kriterijų atitinka) ir 0 (nė vienas iš kriterijų neatitinka). Kadangi visi kriterijai tikrinami pagal tuos pačius langelius, gautame masyve negali būti jokio kito skaičiaus - tik viename pradiniame masyve tam tikroje vietoje gali būti TRUE, kituose - FALSE. Galiausiai, SUMPRODUCTsudėjus gauto masyvo elementus, gaunamas norimas skaičius.

    Pirmoji formulė veikia panašiai, tik su tuo skirtumu, kad ji grąžina vieną dvimatį TRUE ir FALSE reikšmių masyvą, kurį padauginkite iš 1, kad logines reikšmes paverstumėte atitinkamai 1 ir 0.

    Taikant mūsų pavyzdinių duomenų rinkiniui, formulės įgauna tokią formą:

    =SUMPRODUCT(1*(A2:A10={"obuoliai", "bananai", "citrinos"}))

    Arba

    =SUMPRODUCT((A2:A10="obuoliai") + (A2:A10="bananai") + (A2:A10="citrinos"))

    Pakeiskite kietai užkoduotą masyvo konstantą diapazono nuoroda ir gausite dar elegantiškesnį sprendimą:

    =SUMPRODUKTAS(1*( A2:A10=F1:H1))

    Pastaba. SUMPRODUCT funkcija yra lėtesnė nei COUNTIF, todėl šią formulę geriausia naudoti santykinai mažiems duomenų rinkiniams.

    Skaičiuokite ląsteles su OR ir AND logika

    Dirbant su dideliais duomenų rinkiniais, kuriuose yra daugiapakopių ir tarppakopių ryšių tarp elementų, tikėtina, kad vienu metu reikės skaičiuoti langelius su OR ir AND sąlygomis.

    Pavyzdžiui, gaukime "pristatytų" obuolių, "bananų" ir "citrinų" skaičių. Kaip tai padaryti? Pirmiausia išverskime savo sąlygas į "Excel" kalbą:

    • A skiltis: "obuoliai", "bananai" arba "citrinos".
    • C skiltis: "pristatyta"

    Žvelgiant iš kitos pusės, reikia suskaičiuoti eilutes, kuriose yra "obuoliai ir pristatyta" ARBA "bananai ir pristatyta" ARBA "citrinos ir pristatyta". Tokiu būdu užduotis susiveda į langelių su 3 OR sąlygomis skaičiavimą - lygiai tą patį, ką darėme ankstesniame skyriuje! Vienintelis skirtumas yra tas, kad kiekvienoje OR sąlygoje AND kriterijui įvertinti naudosite COUNTIFS, o ne COUNTIF.

    1 formulė. COUNTIFS + COUNTIFS

    Tai ilgiausia formulė, kurią lengviausia parašyti :)

    =COUNTIFS(A2:A10, "obuoliai", C2:C10, "pristatyta") + COUNTIFS(A2:A10, "bananai", C2:C10, "pristatyta")) + COUNTIFS(A2:A10, "citrinos", C2:C10, "pristatyta"))

    Toliau pateiktoje ekrano kopijoje parodyta ta pati formulė su langelių nuorodomis:

    =COUNTIFS(A2:A10, K1, C2:C10, K2) + COUNTIFS(A2:A10, L1, C2:C10, K2) + COUNTIFS(A2:A10, M1,C2:C10, K2)

    2 formulė. COUNTIFS su masyvo konstanta

    Kompaktiškesnę COUNTIFS formulę su AND/OR logika galima sukurti į masyvo konstantą įtraukus OR kriterijus:

    =SUMA(COUNTIFS(A2:A10, {"obuoliai", "bananai", "citrinos"}, C2:C10, "pristatytas"))

    Kai kriterijams naudojama diapazono nuoroda, reikia masyvo formulės, kuri užpildoma paspaudus Ctrl + Shift + Enter :

    =SUM(COUNTIFS(A2:A10,F1:H1,C2:C10,F2))

    Patarimas. Jei reikia, galite naudoti pakaitiniai ženklai bet kurios pirmiau aptartos formulės kriterijuose. Pavyzdžiui, norėdami suskaičiuoti visų rūšių bananus, pvz., "žali bananai" arba "auksapirščiai bananai", galite naudoti šią formulę:

    =SUMA(COUNTIFS(A2:A10, {"obuoliai", "*bananai*", "citrinos"}, C2:C10, "pristatytas"))

    Panašiai galite sukurti formulę, kad suskaičiuotumėte langelius pagal kitus kriterijų tipus. Pavyzdžiui, norėdami suskaičiuoti "pristatytus" obuolius, "bananus" arba "citrinas", kurių kiekis didesnis nei 200, prie COUNTIFS pridėkite dar vieną kriterijų diapazono ir kriterijų porą:

    =SUMA(COUNTIFS(A2:A10, {"obuoliai", "*bananai*", "citrinos"}, C2:C10, "pristatytas", B2:B10, ">200"))

    Arba naudokite šią masyvo formulę (įvedama naudojant Ctrl + Shift + Enter ):

    =SUM(COUNTIFS(A2:A10,F1:H1,C2:C10,F2, B2:B10, ">"&F3))

    Suskaičiuokite ląsteles su keliomis AR sąlygomis

    Ankstesniame pavyzdyje sužinojote, kaip patikrinti vieną OR sąlygų rinkinį. Tačiau ką daryti, jei turite du ar daugiau rinkinių ir norite gauti bendrą visų galimų OR ryšių sumą?

    Priklausomai nuo to, kiek sąlygų reikia apdoroti, galite naudoti COUNTIFS su masyvo konstanta arba SUMPRODUCT su ISNUMBER MATCH. Pirmąją formulę palyginti lengva sukurti, tačiau ji apsiriboja tik 2 OR sąlygų rinkiniais. Antrąja galima įvertinti bet kokį sąlygų skaičių (žinoma, pagrįstą skaičių, atsižvelgiant į tai, kad "Excel" riboja 255 argumentus ir 8192 simbolių bendrą formulės ilgį),tačiau gali prireikti šiek tiek pastangų, kad suprastumėte formulės logiką.

    Skaičiuokite ląsteles, naudodami 2 rinkinius OR sąlygų

    Jei naudojami tik du OR kriterijų rinkiniai, į pirmiau aptartą COUNTIFS formulę pridėkite dar vieną masyvo konstantą.

    Kad formulė veiktų, reikia atlikti vieną nedidelį, bet labai svarbų pakeitimą: naudoti horizontalusis masyvas (elementai atskirti kableliais) vienam kriterijų rinkiniui ir vertikalusis masyvas (elementai atskirti kabliataškiais). Taip "Excel" nurodo "suporuoti" arba "kryžmiškai apskaičiuoti" abiejų masyvų elementus ir grąžinti dvimatį rezultatų masyvą.

    Pavyzdžiui, suskaičiuokime obuolius, bananus arba citrinas, kurie yra "pristatyti" arba "vežami":

    =SUMA(COUNTIFS(A2:A10, {"obuoliai", "bananai", "citrinos"}, B2:B10, {"pristatyta"; "vežama"}))

    Atkreipkite dėmesį į kabliataškį antrojoje masyvo konstantoje:

    Kadangi "Excel" yra 2 dimensijų programa, neįmanoma sudaryti 3 ar 4 dimensijų masyvo, todėl ši formulė tinka tik dviem OR kriterijų rinkiniams. Norėdami skaičiuoti su daugiau kriterijų, turėsite pereiti prie sudėtingesnės SUMPRODUCT formulės, paaiškintos kitame pavyzdyje.

    Skaičiuokite ląsteles, kuriose yra kelios OR sąlygų rinkiniai

    Jei norite suskaičiuoti langelius, kuriuose yra daugiau nei du OR kriterijų rinkiniai, naudokite SUMPRODUCT funkciją kartu su ISNUMBER MATCH.

    Pavyzdžiui, suskaičiuokime "obuolius", "bananus" arba "citrinas", kurie yra "pristatyti" arba "gabenami" ir supakuoti į "maišą" arba "padėklą":

    =SUMPRODUCT(ISNUMBER(MATCH(A2:A10,{"obuoliai", "bananai", "citrinos"},0))*

    ISNUMBER(MATCH(B2:B10,{"krepšys", "dėklas"},0))*

    ISNUMBER(MATCH(C2:C10,{"pristatyta", "vežama"},0)))

    Pagrindinėje formulės dalyje funkcija MATCH tikrina kriterijus lygindama kiekvieną nurodyto intervalo langelį su atitinkama masyvo konstanta. Jei randamas atitikimas, grąžinama santykinė reikšmės padėtis, jei masyve, priešingu atveju - N/A. ISNUMBER konvertuoja šias reikšmes į TRUE ir FALSE, kurios atitinkamai lygios 1 ir 0. SUMPRODUCT iš to daro išvadą ir padaugina masyvųKadangi padauginus iš nulio gaunamas nulis, išlieka ir sumuojami tik tie visų masyvų langeliai, kuriuose yra 1.

    Toliau pateiktoje ekrano nuotraukoje matomas rezultatas:

    Štai kaip "Excel" programai naudoti COUNTIF ir COUNTIFS funkcijas, kad suskaičiuotumėte langelius, kuriuose yra kelios AND ir OR sąlygos. Norėdami atidžiau susipažinti su šioje pamokoje aptartomis formulėmis, kviečiame atsisiųsti toliau pateiktą pavyzdinę darbo knygą. Dėkoju, kad perskaitėte, ir tikiuosi, kad kitą savaitę susitiksime mūsų tinklaraštyje!

    Praktikos sąsiuvinis

    "Excel" COUNTIF su OR sąlygomis - pavyzdžiai (.xlsx failas)

    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.