
Všeobecný vzorec
(=MAX(IF(MOD(COLUMN(rng)-COLUMN(rng.first)+1,n)=0,rng)))
Zhrnutie
Ak chcete získať maximum pre každý n-tý stĺpec, môžete použiť maticový vzorec založený na funkciách MAX, MOD a COLUMN. V zobrazenom príklade je vzorec v M5:
=MAX(IF(MOD(COLUMN(B5:K5)-COLUMN(B5)+1,L5)=0,B5:K5))
Poznámka: toto je vzorec poľa a musí sa zadávať pomocou klávesov Control + Shift + Enter.
Vysvetlenie
Tento vzorec používa funkcie MOD a COLUMN na odfiltrovanie hodnôt, ktoré nie sú v n-tých stĺpcoch, a potom na výsledok spustí MAX.
Kľúčom je tento úryvok:
MOD(COLUMN(B5:K5)-COLUMN(B5)+1,L5)=0
Tu vzorec používa funkciu COLUMN na získanie množiny „relatívnych“ čísel stĺpcov pre rozsah (podrobne vysvetlený tu), ktorý vyzerá takto:
(1,2,3,4,5,6,7,8,9,10)
Toto pole vstupuje do funkcie MOD ako argument čísla:
MOD((1,2,3,4,5,6,7,8,9,10),K5)=0
kde L5 je hodnota použitá pre „n-té“. Funkcia MOD vráti zvyšok pre každé číslo stĺpca vydelené N. Takže napríklad keď N = 3, MOD vráti pole podobné tomuto:
(1,2,0,1,2,0,1,2,0,1)
Upozorňujeme, že nuly sa objavujú pre stĺpce 3, 6, 9 atď., Čo zodpovedá každému 3. stĺpcu. Toto pole sa porovnáva s nulou s logickým výrazom = 0, aby vynútil hodnotu TRUE, keď je zvyšok nula, a hodnotu FALSE, ak nie. Tieto hodnoty vstupujú do funkcie IF ako logický test. Funkcia IF filtruje zodpovedajúcim spôsobom, takže do výsledného poľa sa dostanú iba hodnoty v pôvodnom rozsahu v n-tých stĺpcoch. Ostatné hodnoty sa stanú NEPRAVDA.
Keď n = 3, konečné pole vo vnútri MAX vyzerá takto:
MAX((FALSE,FALSE,11,FALSE,FALSE,8,FALSE,FALSE,19,FALSE))
Nakoniec funkcia MAX ignoruje FALSE hodnoty a vráti maximum zo zostávajúcich hodnôt, 19.
Max. Každého druhého stĺpca
Ak chcete získať maximum každého druhého stĺpca, prispôsobte tento vzorec podľa potreby, pochopenie vzorca automaticky priradí 1 prvému stĺpcu v rozsahu. Ak chcete získať maximum AJ stĺpcov, použite:
(=MAX(IF(MOD(COLUMN(A1:Z1)-COLUMN(A1)+1,2)=0,rng)))
Ak chcete získať maximum stĺpcov ODD, použite:
(=MAX(IF(MOD(COLUMN(A1:Z1)-COLUMN(A1)+1,2)=1,rng)))