Exceli valem: iga n-nda veeru maksimaalne arv

Lang L: none (table-of-contents)

Üldine valem

(=MAX(IF(MOD(COLUMN(rng)-COLUMN(rng.first)+1,n)=0,rng)))

Kokkuvõte

Iga n-nda veeru maksimumi saamiseks võite kasutada massiivi valemit, mis põhineb funktsioonidel MAX, MOD ja COLUMN. Näidatud näites on valem M5-s:

=MAX(IF(MOD(COLUMN(B5:K5)-COLUMN(B5)+1,L5)=0,B5:K5))

Märkus: see on massiivi valem ja see tuleb sisestada juhtklahviga + shift + enter.

Selgitus

See valem kasutab funktsioone MOD ja COLUMN, et filtreerida välja väärtused, mis pole n-ndas veerus, ja seejärel käivitab tulemuse MAX.

Peamine on see koodilõik:

MOD(COLUMN(B5:K5)-COLUMN(B5)+1,L5)=0

Siin kasutab valem funktsiooni COLUMN, et saada vahemiku "suhteliste" veerunumbrite komplekt (mida on siin üksikasjalikult selgitatud), mis näeb välja järgmine:

(1,2,3,4,5,6,7,8,9,10)

See massiiv läheb funktsiooni MOD kui arvargument:

MOD((1,2,3,4,5,6,7,8,9,10),K5)=0

kus L5 on n-nda jaoks kasutatav väärtus. Funktsioon MOD tagastab iga veeru numbri jäägi jagatuna N-ga. Näiteks kui N = 3, tagastab MOD sellise massiivi:

(1,2,0,1,2,0,1,2,0,1)

Pange tähele, et veergudele 3, 6, 9 jne ilmuvad nullid, mis vastavad igale 3. veerule. Seda massiivi võrreldakse nulliga loogilise avaldisega = 0, et sundida TÕENE, kui ülejäänud on null, ja VALE, kui mitte. Need väärtused lähevad funktsiooni IF loogilise testina. Funktsioon IF filtreeritakse vastavalt, seega jõuavad lõplikku massiivi ainult algse vahemiku n-nda veeru väärtused. Ülejäänud väärtused muutuvad VALE.

Kui n = 3, näeb MAX-i viimane massiiv välja selline:

MAX((FALSE,FALSE,11,FALSE,FALSE,8,FALSE,FALSE,19,FALSE))

Lõpuks ignoreerib funktsioon MAX valesid väärtusi ja tagastab ülejäänud väärtuste maksimumi, 19.

Maksimaalselt iga teine ​​veerg

Kui soovite saada iga teise veeru maksimumi, kohandage seda valemit vastavalt vajadusele. Valemi mõistmine määrab automaatselt vahemiku esimesele veerule 1. EVENi maksimaalse veeru saamiseks kasutage järgmist.

(=MAX(IF(MOD(COLUMN(A1:Z1)-COLUMN(A1)+1,2)=0,rng)))

ODD veergude maksimaalse arvu saamiseks kasutage järgmist.

(=MAX(IF(MOD(COLUMN(A1:Z1)-COLUMN(A1)+1,2)=1,rng)))

Huvitavad Artiklid...