Excel-kaava: Laske rivit TAI-logiikalla -

Sisällysluettelo

Yhteenveto

Voit laskea rivejä TAI-logiikalla käyttämällä SUMPRODUCT-funktioon perustuvaa kaavaa. Esitetyssä esimerkissä G6: n kaava on:

=SUMPRODUCT((group="a")*((color1="red")+(color2="red")>0))

missä ryhmä (B5: B15), väri1 (C5: C15) ja väri2 (D5: D15) on nimetty alueeksi .

Selitys

Yksi Excelin hankalimmista ongelmista on laskea rivit tietojoukossa "OR-logiikalla". Peruskenaarioita on kaksi: (1) haluat laskea rivit, joissa sarakkeen arvo on "x" TAI "y" (2) haluat laskea rivit, joissa arvo "x" on yhdessä sarakkeessa TAI toinen .

Tässä esimerkissä tavoitteena on laskea rivit, joissa group = "a" JA Väri1 TAI Väri2 ovat "punaiset". Tämä tarkoittaa, että työskentelemme yllä olevan skenaarion 2 kanssa.

Kanssa COUNTIFS

Aluksi saatat tavoittaa COUNTIFS-funktion, joka käsittelee useita ehtoja natiivisti. COUNTIFS-funktio kuitenkin yhdistää ehdot JA-logiikkaan, joten kaikkien ehtojen on oltava TOSI, jotta ne voidaan sisällyttää laskentaan:

=COUNTIFS(group,"a",color1,"red",color2,"red") // returns 1

Tämä tekee COUNTIFS: stä toimimattoman, ellei käytetä useita COUNTIFS-esiintymiä:

=COUNTIFS(group,"a",color1,"red")+COUNTIFS(group,"a",color2,"red")-COUNTIFS(group,"a",color1,"red",color2,"red")

Käännös: Laske rivit, joissa ryhmä on "a" ja väri1 on "punainen" + laske rivit, joissa ryhmä on "a" ja väri2 on "punainen" - laske rivit, joissa ryhmä on "a" ja väri1 on "punainen" ja väri2 on " punainen "(kaksinkertaisen laskennan välttämiseksi).

Tämä toimii, mutta voit nähdä, että tämä on jonkin verran monimutkainen ja turha kaava.

Boolen logiikalla

Parempi ratkaisu on käyttää loogista logiikkaa ja käsitellä tulos SUMPRODUCT-toiminnolla. (Jos tarvitset perustetta Boolen algebraan, tämä video tarjoaa johdannon.) Esitetyssä esimerkissä G6: n kaava on:

=SUMPRODUCT((group="a")*((color1="red")+(color2="red")>0))

missä ryhmä (B5: B15), väri1 (C5: C15) ja väri2 (D5: D15) on nimetty alueeksi .

Ongelman ensimmäinen osa on testata ryhmää = "a", jota teemme näin:

(group="a")

Koska alue B5: B15 sisältää 11 solua, tämä lauseke palauttaa 11 TOSI- ja EPÄTOSI-arvon taulukon seuraavasti:

(TRUE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE)

Jokainen TOSI edustaa riviä, jossa ryhmä on "A".

Seuraavaksi meidän on tarkistettava arvo "punainen" joko sarakkeessa1 tai sarakkeessa2. Teemme tämän kahdella lausekkeella, jotka on liitetty yhteen (+), koska lisäys vastaa OR-logiikkaa Boolen algebrassa:

(color1="red")+(color2="red")

Excel arvioi TOSI- ja EPÄTOSI-arvot automaattisesti arvoiksi 1 ja 0 minkä tahansa matemaattisen operaation aikana, joten yllä olevan lausekkeen tulos on tällainen taulukko:

(2;0;0;1;1;0;1;0;0;0;1)

Matriisin ensimmäinen numero on 2, koska sekä Väri1 että Väri2 ovat "punaisia" ensimmäisellä rivillä. Seuraavassa selitetyistä syistä meidän on varottava tätä tilannetta tarkistamalla nollan suuremmat arvot:

((2;0;0;1;1;0;1;0;0;0;1))>0

Nyt meillä on jälleen joukko TOSI ja EPÄTOSI arvoja:

(TRUE;FALSE;FALSE;TRUE;TRUE;FALSE;TRUE;FALSE;FALSE;FALSE;TRUE)

Alla olevassa taulukossa on yhteenveto siitä, miten Excel arvioi edellä selitetyn värilogiikan:

Tässä vaiheessa meillä on tuloksia ryhmän = "a" testaamisesta yhdessä taulukossa:

(TRUE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE)

Ja tulokset testaamalla "punainen" väreissä Color1 tai Color2 toisessa taulukossa:

(TRUE;FALSE;FALSE;TRUE;TRUE;FALSE;TRUE;FALSE;FALSE;FALSE;TRUE)

Seuraava askel on tuoda nämä kaksi taulukkoa yhteen AND-logiikan kanssa. Tätä varten käytämme kertomista (*), koska kertolasku vastaa Boolen algebran AND-logiikkaa.

Kertomalla nämä kaksi taulukkoa yhteen, meillä on yksi taulukko 1s ja 0s, joka toimitetaan suoraan SUMPRODUCT-funktiolle:

=SUMPRODUCT((1;0;0;0;1;0;0;0;0;0;0))

SUMPRODUCT-funktio palauttaa lopputuloksena numeroiden summan 2. Tämä on niiden rivien määrä, joissa group = "a" JA Väri1 TAI Väri2 ovat "punaisia".

Kaksinkertaisen laskennan välttämiseksi

Emme halua kaksinkertaista laskea rivejä, joissa sekä Väri1 että Väri2 ovat "punaisia". Siksi tarkistamme tulokset (väri1 = "punainen") + (väri2 = "punainen") alle nollan arvoista alla olevasta koodista:

((color1="red")+(color2="red"))>0

Ilman tätä tarkistusta tietojen ensimmäiseltä riviltä 2 näkyisi viimeisessä taulukossa ja aiheuttaisi kaavan palauttavan väärin 3 viimeisenä lukuna.

SUODATIN -vaihtoehto

Yksi hieno asia Boolen logiikassa on, että se toimii täydellisesti Excelin uusimpien toimintojen kanssa, kuten XLOOKUP ja FILTER. Esimerkiksi FILTER-toiminto voi käyttää täsmälleen samaa logiikkaa, joka on selitetty edellä, vastaavien rivien purkamiseksi:

=FILTER(B5:D15,(group="a")*((color1="red")+(color2="red")>0))

Suodattimen tulos on kaksi riviä, jotka täyttävät alla esitetyt ehdot:

Jos haluat oppia lisää näistä uusista toiminnoista, meillä on yleiskatsaus ja videokoulutus.

Mielenkiintoisia artikkeleita...