Формула на Excel: Максимум на всяка n-та колона -

Съдържание

Обща формула

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

Обобщение

За да получите максимума на всяка n-та колона, можете да използвате формула на масив, базирана на функциите MAX, MOD и COLUMN. В показания пример формулата в M5 е:

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

Забележка: това е формула на масив и трябва да се въведе с control + shift + enter.

Обяснение

Тази формула използва функциите MOD и COLUMN за филтриране на стойности, които не са в n-ти колони, след което изпълнява MAX върху резултата.

Ключът е този фрагмент:

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

Тук формулата използва функцията COLUMN, за да получи набор от "относителни" номера на колони за диапазона (обяснени подробно тук), който изглежда така:

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

Този масив влиза във функцията MOD като аргумент число:

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

където L5 е стойността, която трябва да се използва за "n-та". Функцията MOD връща остатъка за всеки номер на колона, разделен на N. Така, например, когато N = 3, MOD ще върне масив като този:

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

Имайте предвид, че нулите се появяват за колони 3, 6, 9 и т.н., съответстващи на всяка 3-та колона. Този масив се сравнява с нула с логическия израз = 0, за да принуди TRUE, когато остатъкът е нула и FALSE, когато не. Тези стойности влизат във функцията IF като логически тест. Функцията IF филтрира съответно, така че само стойности в оригиналния диапазон в n-ти колони го правят в крайния масив. Останалите стойности стават FALSE.

Когато n = 3, крайният масив вътре в MAX изглежда така:

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

И накрая, функцията MAX игнорира FALSE стойности и връща максимума от останалите стойности, 19.

Макс от всяка друга колона

Ако искате да получите максимума на всяка друга колона, просто адаптирайте тази формула според нуждите, разбирайки, че формулата автоматично присвоява 1 на първата колона в диапазона. За да получите максимум ДОКУМЕНТНИ колони, използвайте:

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

За да получите максимум ODD колони, използвайте:

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

Интересни статии...