Voit laskea ainutlaatuisia tekstiarvoja alueella, jolla on ehtoja, käyttämällä taulukkoon perustuvaa taulukkokaavaa TAAJUUS ja OTTELU toimintoja. Esitetyssä esimerkissä G6: n kaava on:
{= SUM (--( FREQUENCY ( IF (criteria, MATCH (vals,vals,0)), ROW (vals)- ROW (vals.first)+1)>0))}
joka palauttaa 3, koska kolme eri ihmistä työskenteli projektissa Omega.
Huomaa: tämä on taulukon kaava ja on syötettävä näppäimillä control + shift + enter.
Kanssa Excel 365 , voit käyttää a paljon yksinkertaisempi kaava perustuu UNIQUE -toiminto . Selitys
Tämä on monimutkainen kaava, joka käyttää FREQUENCY -funktiota MATCH -funktiosta johdettujen numeeristen arvojen laskemiseen. Sisäpuolelta ulospäin toimivalla MATCH -toiminnolla saadaan jokaisen datassa näkyvän arvon sijainti:
{= SUM (--( FREQUENCY ( IF (C5:C11=G5, MATCH (B5:B11,B5:B11,0)), ROW (B5:B11)- ROW (B5)+1)>0))}
MATCHin tulos on seuraavanlainen taulukko:
MATCH (B5:B11,B5:B11,0)
Koska MATCH palauttaa aina sijainnin ensimmäinen vastaavuutta, arvot, jotka näkyvät useammin kuin kerran tiedoissa, palauttavat saman sijainnin. Esimerkiksi, koska 'Jim' näkyy 4 kertaa luettelossa, hän esiintyy tässä taulukossa 4 kertaa numerona 1.
MATCH -toiminnon ulkopuolella IF -toiminto käytetään kriteerien soveltamiseen, joihin tässä tapauksessa kuuluu testata, onko projekti 'omega' (solusta G5):
{1131167}
IF -toiminto toimii kuin suodatin ja sallii MATCH -arvojen kulkea läpi vain, jos ne liittyvät omegaan. Tuloksena on tällainen taulukko:
IF (C5:C11=G5 // filter on 'omega'
Suodatettu ryhmä toimitetaan suoraan FREQUENCY -funktiolle nimellä data_array Perustelu. Seuraavaksi, ROW -toiminto käytetään rakentamaan peräkkäinen luettelo numeroista jokaiselle datan arvolle:
{FALSEFALSEFALSE1167} // after filtering
Tämä luo seuraavanlaisen taulukon:
ROW (B3:B12)- ROW (B3)+1
josta tulee bins_array argumentti SUODATTIMESSA. Tässä vaiheessa meillä on:
{12345678910}
TAAJUUS palauttaa numeroryhmän, joka ilmaisee lukumäärän jokaiselle dataryhmän arvolle, bin -järjestyksessä. Kun luku on jo laskettu, TAAJUUS palauttaa nollan. FREQUENCYn tulos on seuraavanlainen taulukko:
FREQUENCY ({FALSEFALSEFALSE1167},{1234567})
Huomautus: FREQUENCY palauttaa aina taulukon, jossa on yksi kohde enemmän kuin bins_array .
kuinka saada prosenttiosuus Excelissä
Tässä vaiheessa voimme kirjoittaa kaavan uudelleen näin:
{20000110} // result from FREQUENCY
Tarkistamme nollaa suurempia arvoja, mikä muuntaa luvut TOSIIN tai EPÄTOSIIN:
= SUM (--({20000110}>0))
Käytämme sitten a kaksinkertainen negatiivinen pakottaa loogiset arvot arvoihin 1s ja 0s:
= SUM (--({TRUEFALSEFALSEFALSEFALSETRUETRUEFALSE}))
Lopuksi, SUM -toiminto palauttaa lopputuloksena 3.
Huomaa: tämä on taulukkokaava ja se on annettava näppäimillä Control + Vaihto + Enter.
Alueen tyhjien solujen käsittely
Jos alueen solut ovat tyhjiä, sinun on muutettava kaavaa, jotta tyhjiä soluja ei siirretä MATCH -toimintoon, mikä aiheuttaa virheen. Voit tehdä tämän lisäämällä toisen sisäkkäisen IF -toiminnon tyhjien solujen tarkistamiseksi:
= SUM ({10000110})
Kahdella kriteerillä
Jos sinulla on kaksi ehtoa, voit laajentaa kaavan logiikkaa lisäämällä toisen sisäkkäisen IF: n:
{= SUM (--( FREQUENCY ( IF (B5:B11'', IF (C5:C11=G5, MATCH (B5:B11,B5:B11,0))), ROW (B5:B11)- ROW (B5)+1)>0))}
Missä c1 = kriteerit1, c2 = kriteerit2 ja valssi = arvoalue.
Boolen logiikalla
Kanssa boolen logiikka , voit vähentää sisäkkäiset IF: t :
{= SUM (--( FREQUENCY ( IF (c1, IF (c2, MATCH (vals,vals,0))), ROW (vals)- ROW (vals.1st)+1)>0))}
Tämä helpottaa lisäehtojen lisäämistä ja hallintaa.
Mukautettu alkaen Mike Givinin erinomainen kirja matriisikaavoista, Control-Vaihto-Enter. Kirjailija Dave Bruns