Excel

Laske yksilölliset tekstiarvot ehdoilla

Count Unique Text Values With Criteria

Excel-kaava: Laske yksilölliset tekstiarvot ehdoillaYleinen kaava
{= SUM (--( FREQUENCY ( IF (criteria, MATCH (vals,vals,0)), ROW (vals)- ROW (vals.first)+1)>0))}
Yhteenveto

Voit laskea yksilölliset tekstiarvot alueella kriteereillä käyttämällä taulukon kaavaa, joka perustuu TAAJUUS ja OTTELU toimintoja. Esitetyssä esimerkissä G6: n kaava on:

 
{= SUM (--( FREQUENCY ( IF (C5:C11=G5, MATCH (B5:B11,B5:B11,0)), ROW (B5:B11)- ROW (B5)+1)>0))}

joka palauttaa 3, koska kolme eri ihmistä työskenteli Omega-projektissa.



Huomaa: tämä on taulukon kaava ja se on syötettävä näppäimillä + + Vaihto + 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 laskemaan MATCH-funktiolla johdetut numeeriset arvot. Työskentelemällä sisältä ulospäin, MATCH-funktiota käytetään saamaan kunkin datassa näkyvän arvon sijainti:

 
 MATCH (B5:B11,B5:B11,0)

MATCH: n tulos on tällainen taulukko:



 
{1131167}

Koska MATCH palauttaa aina ensimmäinen täsmää, arvoissa, jotka näkyvät useammin kuin kerran tiedoissa, palautetaan sama sijainti. Esimerkiksi koska 'Jim' näkyy neljä kertaa luettelossa, hän näkyy tässä taulukossa neljä kertaa numerona 1.

MATCH-toiminnon ulkopuolella JOS-toiminto käytetään kriteerien soveltamiseen, johon tässä tapauksessa sisältyy testaus, jos projekti on 'omega' (solusta G5):

 
 IF (C5:C11=G5 // filter on 'omega'

IF-toiminto toimii kuin suodatin, joka sallii MATCH-arvojen läpikäynnin vain, jos ne liittyvät 'omegaan'. Tuloksena on tällainen taulukko:



 
{FALSEFALSEFALSE1167} // after filtering

Suodatettu taulukko toimitetaan suoraan FREQUENCY-toimintoon data_array Perustelu. Seuraavaksi RIVI-toiminto käytetään rakentamaan a peräkkäinen numeroluettelo jokaiselle datan arvolle:

 
 ROW (B3:B12)- ROW (B3)+1

Tämä luo tällaisen taulukon:

 
{12345678910}

josta tulee roskakorit argumentti suodattimessa. Tässä vaiheessa meillä on:

 
 FREQUENCY ({FALSEFALSEFALSE1167},{1234567})

FREQUENCY palauttaa joukon numeroita, jotka ilmaisevat binäärin järjestämän dataryhmän jokaisen arvon määrän. Kun numero on jo laskettu, FREQUENCY palauttaa nollan. FREQUENCY-tulos on tällainen taulukko:

 
{20000110} // result from FREQUENCY

Huomautus: FREQUENCY palauttaa aina matriisin, jossa on yksi kohde enemmän kuin roskakorit .

kuinka saada prosenttiosuus Excelissä

Tässä vaiheessa voimme kirjoittaa kaavan uudelleen näin:

 
= SUM (--({20000110}>0))

Tarkistamme arvot, jotka ovat suurempia kuin nolla, joka muuntaa luvut TOSI tai EPÄTOSI:

 
= SUM (--({TRUEFALSEFALSEFALSEFALSETRUETRUEFALSE}))

Sitten käytämme a kaksinkertainen negatiivinen pakottaa loogiset arvot arvoon 1s ja 0s:

 
= SUM ({10000110})

Lopuksi SUM-toiminto palauttaa lopputulokseksi 3.

Huomaa: tämä on matriisikaava ja se on syötettävä painamalla Control + Vaihto + Enter.

Tyhjien solujen käsittely alueella

Jos jotkut alueen solut ovat tyhjiä, sinun on mukautettava kaava estämään tyhjien solujen siirtyminen MATCH-toimintoon, mikä heittää virheen. Voit tehdä tämän lisäämällä toisen sisäkkäisen IF-toiminnon tarkistaaksesi tyhjät solut:

 
{= SUM (--( FREQUENCY ( IF (B5:B11'', IF (C5:C11=G5, MATCH (B5:B11,B5:B11,0))), ROW (B5:B11)- ROW (B5)+1)>0))}

Kahdella kriteerillä

Jos sinulla on kaksi ehtoa, voit laajentaa kaavan logiikkaa lisäämällä toisen sisäkkäisen IF: n:

 
{= SUM (--( FREQUENCY ( IF (c1, IF (c2, MATCH (vals,vals,0))), ROW (vals)- ROW (vals.1st)+1)>0))}

Missä c1 = kriteerit1, c2 = kriteerit2 ja valssi = arvoalue.

Boolen logiikalla

Kanssa looginen logiikka , voit vähentää sisäkkäiset IF: t :

 
{= SUM (--( FREQUENCY ( IF ((criteria1)*(criteria2), MATCH (vals,vals,0)), ROW (vals)- ROW (vals.1st)+1)>0))}

Tämä helpottaa lisäehtojen lisäämistä ja hallintaa.

Mukautettu Mike Givin erinomainen taulukko taulukkoista, Control-Shift-Enter. Kirjailija Dave Bruns


^