Max of every nth column in Excel
This tutorial shows how to calculate Max of every nth column in Excel using the example below;
Formula
{=MAX(IF(MOD(COLUMN(range)-COLUMN(range.first)+1,n)=0,range))}
Explanation
To get the max of every nth column, you can use an array formula based on the MAX, MOD, and COLUMN functions. In the example shown, the formula in M5 is:
=MAX(IF(MOD(COLUMN(B5:K5)-COLUMN(B5)+1,L5)=0,B5:K5))
Note: this is an array formula and must be entered with control + shift + enter.
How this formula works
This formula uses the MOD and COLUMN functions to filter out values not in nth columns, then runs MAX on the result.
The key is this snippet:
MOD(COLUMN(B5:K5)-COLUMN(B5)+1,L5)=0
Here, the formula uses the COLUMN function to get a set of “relative” column numbers for the range (explained in detail here) which looks like this:
{1,2,3,4,5,6,7,8,9,10}
This array goes into the MOD function as the number argument:
MOD({1,2,3,4,5,6,7,8,9,10},K5)=0
where L5 is the the value to use for “nth”. The MOD function returns the remainder for each column number divided by N. So, for example, when N = 3, MOD will return an array like this:
{1,2,0,1,2,0,1,2,0,1}
Note that zeros appear for columns 3, 6, 9, etc., corresponding to every 3rd column. This array is compared to zero with the logical expression =0 to force a TRUE when the remainder is zero and a FALSE when not. These values go into the IF function as the logical test. The IF function filters accordingly, so only values in the original range in nth columns make it into the final array. The other values become FALSE.
When n = 3, the final array inside MAX looks like this:
MAX({FALSE,FALSE,11,FALSE,FALSE,8,FALSE,FALSE,19,FALSE})
Finally, the MAX function ignores FALSE values and returns the maximum of remaining values, 19.
Max of every other column
If you want to get the max of every other column, just adapt this formula as needed, understanding the formula automatically assigns 1 to the first column in the range. To get the max of EVEN columns, use:
{=MAX(IF(MOD(COLUMN(A1:Z1)-COLUMN(A1)+1,2)=0,rng))}
To get the max of ODD columns, use:
{=MAX(IF(MOD(COLUMN(A1:Z1)-COLUMN(A1)+1,2)=1,rng))}