
Általános képlet
(=MAX(IF(MOD(COLUMN(rng)-COLUMN(rng.first)+1,n)=0,rng)))
Összegzés
Minden n-edik oszlop maximális értékének eléréséhez használhat egy tömbképletet, amely a MAX, MOD és COLUMN függvényeken alapul. A bemutatott példában az M5 képlete a következő:
=MAX(IF(MOD(COLUMN(B5:K5)-COLUMN(B5)+1,L5)=0,B5:K5))
Megjegyzés: ez egy tömbképlet, amelyet a control + shift + enter billentyűkombinációval kell megadni.
Magyarázat
Ez a képlet a MOD és COLUMN függvényekkel szűri ki az n-edik oszlopban nem szereplő értékeket, majd az eredményen futtatja a MAX értéket.
A kulcs ez a részlet:
MOD(COLUMN(B5:K5)-COLUMN(B5)+1,L5)=0
Itt a képlet a COLUMN függvény segítségével kap egy "relatív" oszlopszámot a tartományhoz (itt részletesen kifejtve), amely így néz ki:
(1,2,3,4,5,6,7,8,9,10)
Ez a tömb a MOD függvénybe kerül mint argumentum:
MOD((1,2,3,4,5,6,7,8,9,10),K5)=0
ahol L5 az "n-edikre" használandó érték. A MOD függvény minden oszlopszám maradékát visszaadja N-vel osztva. Például, amikor N = 3, a MOD egy ilyen tömböt ad vissza:
(1,2,0,1,2,0,1,2,0,1)
Ne feledje, hogy a 3., 6., 9., stb. Oszlopokban nullák jelennek meg, amelyek minden harmadik oszlopnak megfelelnek. Ezt a tömböt a nullához hasonlítjuk a = 0 logikai kifejezéssel, hogy IGAZ-ot kényszerítsünk, ha a maradék nulla, és HAMIS-ot, ha nem. Ezek az értékek logikai tesztként kerülnek az IF függvénybe. Az IF függvény ennek megfelelően szűr, így csak az n-edik oszlop eredeti tartományának értékei teszik be a végső tömbbe. A többi érték HAMIS lesz.
Amikor n = 3, a MAX belsejében található utolsó tömb így néz ki:
MAX((FALSE,FALSE,11,FALSE,FALSE,8,FALSE,FALSE,19,FALSE))
Végül a MAX függvény figyelmen kívül hagyja a FALSE értékeket, és a fennmaradó értékek maximumát adja vissza, 19.
Minden más oszlop max
Ha minden más oszlop maximális értékét meg akarja kapni, csak szükség szerint módosítsa ezt a képletet, ha megérti a képletet, automatikusan hozzárendel 1-et a tartomány első oszlopához. Az EVEN oszlopok maximális számának megszerzéséhez használja:
(=MAX(IF(MOD(COLUMN(A1:Z1)-COLUMN(A1)+1,2)=0,rng)))
Az ODD oszlopok maximális számának megszerzéséhez használja:
(=MAX(IF(MOD(COLUMN(A1:Z1)-COLUMN(A1)+1,2)=1,rng)))