Exceli valem: loendage nähtavaid ridu ainult kriteeriumidega -

Üldine valem

=SUMPRODUCT((range=criteria)*(SUBTOTAL(103,OFFSET(range,rows,0,1))))

Kokkuvõte

Ainult kriteeriumidega nähtavate ridade lugemiseks võite kasutada üsna keerukat valemit, mis põhineb summadel SUMPRODUCT, SUBTOTAL ja OFFSET. Näidatud näites on valem C12-s järgmine:

=SUMPRODUCT((C5:C8=C10)*(SUBTOTAL(103,OFFSET(C5,ROW(C5:C8)-MIN(ROW(C5:C8)),0))))

Eessõna

Funktsioon SUBTOTAL suudab hõlpsasti luua summasid ja loendeid varjatud ja varjatud ridade jaoks. Kuid see ei saa ilma mõne abita hakkama selliste kriteeriumidega nagu COUNTIF või SUMIF. Üheks lahenduseks on kasutada funktsiooni SUBTOTAL (OFFSET kaudu) ja kriteeriumide rakendamiseks SUMPRODUCT. Selle lähenemise üksikasju on kirjeldatud allpool.

Selgitus

Põhimõtteliselt töötab see valem, seadistades SUMPRODUCTi sisse kaks massiivi. Esimene massiiv rakendab kriteeriume ja teine ​​massiiv käsitleb nähtavust:

=SUMPRODUCT(criteria*visibility)

Kriteeriume rakendatakse koos valemi osaga:

=(C5:C8=C10)

Mis loob sellise massiivi:

(FALSE;TRUE;FALSE;TRUE)

Kui TRUE tähendab "vastab kriteeriumidele". Pange tähele, et kuna me kasutame sellel massiivil korrutamist (*), konverteeritakse matemaatikaoperatsiooni abil TRUE FALSE väärtused automaatselt 1-ks ja 0-ks, nii et lõpuks jõuame:

(0;1;0;1)

Nähtavuse filtrit rakendatakse SUBTOTAL abil funktsiooniga 103.

SUBTOTAL suudab arvutuste käitamisel peidetud read välja jätta, nii et saame seda sel juhul kasutada "filtri" loomiseks, et välistada peidetud read SUMPRODUCTis. Probleem on aga selles, et SUBTOTAL tagastab ühe numbri, samas kui selle edukaks kasutamiseks SUMPRODUCT-is vajame hulga tulemusi. Trikk on see, et kasutatakse OFFSET-i, et toita SUBTOTAL üks viide rea kohta, nii et OFFSET tagastab ühe tulemuse rea kohta.

Muidugi nõuab see veel ühte nippi, milleks on anda OFFSETile massiiv, mis sisaldab ühte arvu rea kohta, alustades nullist. Teeme seda funktsiooniga ROW ülesehitatud avaldisega:

=ROW(C5:C8)-MIN(ROW(C5:C8)

mis genereerib sellise massiivi:

(0;1;2;3)

Kokkuvõtteks võib öelda, et teine ​​massiiv (mis haldab nähtavust SUBTOTAL abil) genereeritakse järgmiselt:

=SUBTOTAL(103,OFFSET(C5,ROW(C5:C8)-MIN(ROW(C5:C8)),0)) =SUBTOTAL(103,OFFSET(C5,(0;1;2;3),0)) =SUBTOTAL(103,("East";"West";"Midwest";"West")) =(1;0;1;1)

Ja lõpuks on meil:

=SUMPRODUCT((0,1,0,1)*(1;0;1;1))

Mis tagastab 1.

Mitu kriteeriumi

Valemit saab laiendada mitme sellise kriteeriumi käsitlemiseks:

=SUMPRODUCT((rng1=criteria1)*(rng2=criteria2)*(SUBTOTAL(103,OFFSET(rng,rows,0,1))))

Tulemuste liitmine

Väärtuste summa tagastamiseks loenduse asemel saate valemi kohandada nii, et see sisaldaks summat.

=SUMPRODUCT(criteria*visibility*sumrange)

Kriteeriumid ja nähtavuse massiivid töötavad samamoodi nagu eespool selgitatud, välistades lahtrid, mis pole nähtavad. Kui vajate osalist sobitamist, saate avaldise ISNUMBER + SEARCH abil koostada, nagu siin selgitatud.

Head lingid

MrExceli arutelu Mike Girvini ja Aladin Akyurekiga Mike Girvini võlutrikk 1010

Huvitavad Artiklid...