Поиск максимального значения в диапазоне, содержащем такое же значение

У меня есть данные:

A       B
1       100
1       300
1       200
2       100
2       500
3       100
3       300
3       200

Я хочу выбрать максимум (B) для того же значения в столбце 1. Вывод должен быть:

A       B       C
1       100     300
1       300     300
1       200     300
2       100     500
2       500     500
3       100     300
3       300     300
3       200     300

Я пытался:

={Max(if(A:A=A1,B:B))}  

Это дает мне максимальное значение для 1, то есть 300.

Как скопировать эту формулу для другой группы ячеек? Он выдает сообщение Вы не можете перемещать значения массива.
Как этого добиться?


person Suresh Jambhalkar    schedule 07.08.2013    source источник
comment
stackoverflow.com/questions/2497411/   -  person mr.Reband    schedule 07.08.2013
comment
Возможно, вы имели в виду {=MAX(IF(A:A=A1,B:B))}? Он отлично работает в моей электронной таблице, и я нахожусь в Excel-2007.   -  person Jerry    schedule 07.08.2013
comment
@mr.Reband: решение, упомянутое в ссылке, такое же, как и то, что я пробовал. Это работает для этой ячейки. У меня будут тысячи строк. Как реализовать то же самое для всех строк?   -  person Suresh Jambhalkar    schedule 07.08.2013
comment
@ Джерри, это работает и для меня. предположим, я хочу проверить max, где A.value=2 моя формула будет {=MAX(IF(A:A=A4,B:B))} (PS a4, потому что 2 начинается с 4-й строки). Это будет работать нормально для меня. Но я не хочу копировать и вставлять эту формулу, если у меня есть 100 разных значений в A. Пожалуйста, дайте мне знать, если я не понимаю   -  person Suresh Jambhalkar    schedule 07.08.2013
comment
Что произойдет, если дважды щелкнуть маленькое черное поле (в правом нижнем углу выбранной ячейки, содержащей формулу), чтобы перетащить формулу вниз?   -  person Jerry    schedule 07.08.2013
comment
Мой вывод: 300 300 200 500 500 300 300 200, что неверно. Должно быть 300 300 300 500 500 300 300 300   -  person Suresh Jambhalkar    schedule 07.08.2013
comment
Тогда что-то не так. Я взял ваши образцы значений, и это дает мне желаемый результат. Если вы можете открыть файл xlsx, вот моя выходная ссылка.   -  person Jerry    schedule 07.08.2013


Ответы (2)


Я предлагаю вам удалить ColumnC и начать заново, используя вашу формулу в C1. Затем либо перетащите C1 вниз, насколько это необходимо, либо скопируйте его и вставьте в C2: C, что угодно. Но убедитесь, что = находится внутри фигурной скобки.

person pnuts    schedule 07.08.2013
comment
Это формула массива. и если я перетаскиваю его вниз, это дает мне ошибку. Вы не можете изменить часть массива. Я упомянул об этой ошибке в комментарии к ответу Джона. - person Suresh Jambhalkar; 07.08.2013
comment
Спасибо, это сработало .. Я делал что-то глупое, копируя его. Спасибо всем за помощь в решении этой проблемы. - person Suresh Jambhalkar; 07.08.2013

Есть много способов сделать это - тот, который я придумал, использовал формулы массива. Введите это:

=MAX((--(A:A=A1))*(B:B))

Затем нажмите Ctrl+Shift+Enter, чтобы сделать его формулой массива.

Надеюсь, это поможет

person John Bustos    schedule 07.08.2013
comment
Спасибо всем за быстрый ответ. Проблема в том, что я хочу использовать эту формулу только один раз. Предположим, я добавляю 100 строк данных, а затем, просто скопировав формулу в 100-ю строку, я получу вывод, показанный в вопросе. - person Suresh Jambhalkar; 07.08.2013
comment
Это делает это ... Просто скопируйте формулу ... В противном случае я не понимаю, что вы говорите .... Я попробовал это на ваших входных данных и получил именно те результаты, которые вы показали .... - person John Bustos; 07.08.2013
comment
Если я скопирую формулу вниз, она выдает мне ошибку Вы не можете изменить часть массива. - person Suresh Jambhalkar; 07.08.2013
comment
При вставке формулы массива не включайте скопированную ячейку. Например, скопируйте ячейку C1 и вставьте в C2 и далее... НЕ ВКЛЮЧАЙТЕ C1 В ВСТАВКУ... - person John Bustos; 07.08.2013