MaxIf с соответствующей информацией о строке?

Я использую формулы массива для определения максимального значения определенного подмножества данных строки:

=MAX(($A2:$A100="somestring")*($C2:$C100))

Это отлично работает и дает мне максимальное значение в C, где A = "somestring".

Теперь я хочу вернуть другие значения столбца, связанные с этой «максимальной» строкой, которые являются строками. Интуитивно я думаю, что мне, возможно, придется отказаться от стратегии умножения логической логики, поскольку задействованы строковые значения. Какой лучший/самый чистый способ сделать это?


person Chris Trombley    schedule 11.05.2011    source источник


Ответы (2)


Попробуй это:

=INDEX(B1:B100,MATCH(MAX((A1:A100="somestring")*(C1:C100)),(A1:A100="somestring")*(C1:C100),0))

Столбец, для которого вы хотите получить значения, в этом примере имеет значение B.

person Excellll    schedule 11.05.2011

Предполагая, что вас интересует строка в столбце D, это будет работать:

=INDEX(($D$1:$D$100),MAX(($A2:$A100="somestring")*(ROW($C2:$C100))))

Обратите внимание, что, поскольку индексация в строке () столбца индекса должна начинаться с 1, например, D1: D100.

person Doug Glancy    schedule 11.05.2011
comment
Я думаю, что это возвращает максимальную строку, в которой есть какая-то строка в столбце A, а не максимальное значение в столбце C. - person Excellll; 11.05.2011
comment
На правильном пути, но я считаю, что это возвращает максимальный номер строки, в которой совпадает строка, а не номер строки, содержащий максимальное значение в $C:$C100. - person Chris Trombley; 11.05.2011
comment
@ Excelll и DeafLeopard, вы правы, неправильно поняли вопрос. - person Doug Glancy; 11.05.2011