Fórmula do Excel: Máximo de cada enésima coluna -

Índice

Fórmula genérica

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

Resumo

Para obter o máximo de cada enésima coluna, você pode usar uma fórmula de matriz com base nas funções MAX, MOD e COLUMN. No exemplo mostrado, a fórmula em M5 é:

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

Observação: esta é uma fórmula de matriz e deve ser inserida com control + shift + enter.

Explicação

Esta fórmula usa as funções MOD e COLUMN para filtrar os valores que não estão nas enésimas colunas e, em seguida, executa MAX no resultado.

A chave é este snippet:

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

Aqui, a fórmula usa a função COLUMN para obter um conjunto de números de coluna "relativos" para o intervalo (explicado em detalhes aqui) que se parece com isto:

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

Esta matriz vai para a função MOD como o argumento numérico:

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

onde L5 é o valor a ser usado para "enésimo". A função MOD retorna o resto para cada número de coluna dividido por N. Então, por exemplo, quando N = 3, MOD retornará uma matriz como esta:

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

Observe que zeros aparecem para as colunas 3, 6, 9, etc., correspondendo a cada 3ª coluna. Esta matriz é comparada a zero com a expressão lógica = 0 para forçar um TRUE quando o resto for zero e um FALSE quando não for. Esses valores vão para a função IF como o teste lógico. A função IF filtra de acordo, de modo que apenas os valores no intervalo original nas n-ésimas colunas chegam à matriz final. Os outros valores se tornam FALSE.

Quando n = 3, a matriz final dentro de MAX se parece com isto:

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

Finalmente, a função MAX ignora os valores FALSE e retorna o máximo dos valores restantes, 19.

Máximo de todas as outras colunas

Se você deseja obter o máximo de todas as outras colunas, apenas adapte esta fórmula conforme necessário, pois a compreensão da fórmula atribui 1 automaticamente à primeira coluna do intervalo. Para obter o máximo de EVEN colunas, use:

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

Para obter o máximo de colunas ODD, use:

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

Artigos interessantes...