Excel: найдите значения min/max в столбце среди сопоставленных из другого столбца

у меня есть таблица с двумя столбцами, скажем:Б. У меня есть отдельный список (в столбце D) всех значений в столбце А. Для каждого целевого значения в столбце D Я хочу найти среди всех строк, col a которых соответствует целевому, минимальное и максимальное значения в столбце B. Например, если данные, как показано,

    col A   col B        col D
 1  7.5     1.00         7.5      1.00   1.20
 2  7.5     1.04         8        1.08   1.45
 3  7.5     1.08         8.5      1.17   1.83
 4  7.5     1.15
 5  7.5     1.20
 6  8       1.08
 7  8       1.13
 8  8       1.20
 9  8       1.29
10  8       1.38
11  8       1.43
12  8       1.45
13  8.5     1.17
14  8.5     1.22
15  8.5     1.26
16  8.5     1.35
17  8.5     1.42
18  8.5     1.51
19  8.5     1.58
20  8.5     1.64
21  8.5     1.69
22  8.5     1.74
23  8.5     1.79
24  8.5     1.83

Я хочу иметь формулы, которые возвращают последние два столбца (min и max).

Примечания:

  1. было бы удобно иметь что-то, что работает даже при обращении к диапазонам, выходящим за пределы последней строки (например, использование $A:$A в формулах, не обязательно $A:$A), Так что новые данные могут быть добавлены в нижней части столбцов A,B и все автоматически обновляется.

  2. столбцы A,B будет содержать другие данные, заголовки и т. д., поэтому я думаю, что некоторые формулы могут не работать со ссылками на целые столбцы, такие как $A:$A.

редактировать: я только что нашел несколько похожих / связанных сообщений

найдите дату MIN / MAX в диапазоне, если она соответствует критериям других столбцов

условные мин и Макс в Excel 2010

выберите минимальное значение в столбце B для тех же значений в Столбцах excel?

заданное значение в столбце A, найти min / max в столбце B в EXCEL

найти max или min в excel, с условиями

4 ответов


это работает для меня.

для мин:

=MIN(IF(($A:$A=D1),($B:$B)))

макс:

=MAX(IF(($A:$A=D1),($B:$B)))

обратите внимание, что это массив формул, поэтому вам нужно нажать CTRL+SHIFT+ENTER


Вы можете использовать формулы массивов, чтобы дать вам ответы, которые вам нужны.

в течение минуты вы можете использовать формулу в ячейке E1:

{=MIN(IF($A:$A=D1,$B:$B))}

и максимальная формула для ячейки F1:

{=MAX(IF($A:$A=D1,$B:$B))}

чтобы ввести формулу массива, вы должны ввести все, кроме фигурных скобок (фигурные скобки), затем нажмите клавиши Ctrl и Shift при нажатии клавиши enter... это добавит фигурные скобки, и формула будет считаться формулой массива.

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

Формулы массива работают путем вычислять каждую комбинацию. Он будет вычислять, если значение в A1 совпадает с D1, и если это так, он даст значение B1, то если значение A2 совпадает с D1 он даст значение B2, и так далее. Это даст вам список (или массив) значений из столбца B, где значение в матч. Затем MIN / MAX рассчитывается как обычно.


на INDEX функция может помочь вам избежать CSE, построив стандартную формулу, используя некоторую математику до нуля или сделать астрономические любые несоответствующие значения в зависимости от того, ищете ли вы MAX или MIN результат.

формула псевдо-MAXIF немного проще, поэтому я начну там.

=MAX(INDEX(B:B*(A:A=D1), , ))

Excel рассматривает любое логическое утверждение TRUE как 1 и любое ложное как 0 при использовании математически. Умножение значения в столбец B by 1 оставляет значение неизменным; умножение на 0 приведет к нулю. The INDEX функция передает массив неизмененных значений и нулей в MAX функция в зависимости от того, соответствует ли это критериям или нет. Результатом будет максимальное значение из столбца B, где столбец A равен критериям.

формула псевдо-MINIF по существу переворачивает процесс, математически исключая любое несоответствующее значение, оставляя только совпадающие значения, из которых выбрать MIN from.

=MIN(INDEX(B:B+(A:A<>D1)*1E+99, , ))

опять же, TRUE is 1 и FALSE 0 но на этот раз мы используем его, чтобы добавить 1E + 99 (A 1 следовал по 99 нули, которые не будут MIN ничего) к любым несоответствующим значениям. Соответствующие значения будут иметь 0 × 1Е+99 добавлено к ним, что приравнивается к нулю и не изменит их значение.

MAXIF and MINIF with standard formulas

ссылки на полный диапазон ячеек столбцов, которые я использовал, не оказывают отрицательного влияния на задержку расчета больше, чем аналогичный формула массива будет.


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

ARange =OFFSET ($A$2,0,0, COUNT($A:$A))
BRange =смещение ($B$2,0,0, COUNT ($A:$A))

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

теперь я могу использовать формулу массива =MAX((ARange=D2)*(BRange)) чтобы получить max (и то же самое для min).
Вводятся Формулы массива с помощью CTRL + SHIFT + Enter

См. ответ @Simoco для правильной формулы