У меня есть ряд строк, разделенных на группы. Каждой строке из каждой группы присваивается номер, а строки из одной группы имеют одинаковый номер. В другом столбце у меня есть разные данные, связанные с каждой строкой. Что мне нужно, это поместить в новый столбец самый большой номер данных из последнего упомянутого столбца для каждой группы. Пример:

Столбец А - номер группы

Столбец B - это данные, которые у меня есть

Столбец C - это самые большие данные в каждой группе, отсортированные от первой до последней.

A       B         C
1      24        75
1      75        95
1      52        65
2      36
2      12
2      95
3      32
3      65
3      41

Мне нужно автоматизировать создание столбца C

1 ответ1

0

Если исходить из вашего примера, то формула будет иметь вид:

=MAX(INDIRECT(
      CELL("address", INDEX($B$1:$B$9, MATCH(ROW(), $A$1:$A$9, 0)))&":"&
      CELL("address", INDEX($B$1:$B$9, MATCH(ROW(), $A$1:$A$9, 1)))
     ))

объяснение

INDEX( ... ) возвращает значение в группе, равное текущей строке. Если вы находитесь в строке 1, то она получит значение группы 1.

Интересно, что использование 0 для match_type возвращает первое совпадающее значение, а 1 возвращает последнее значение.

CELL("address", ... ) возвращает адрес ячейки, возвращаемый INDEX , который всегда является первым и последним совпадающим значением группы.

INDIRECT( ... &":"& ... ) преобразует сформированную строку в диапазон. Например, для группы 1 это будет INDIRECT("$B$1:$B$3")

MAX( ... ) находит наибольшее значение в диапазоне, возвращаемом INDIRECT

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .