
Ü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)))