Excel:在从另一列匹配的列中查找最小值/最大值

我有一个两列的表,说A:B。 我在列A中有一个单独的列表(在列D中)所有不同的值。对于列D中的每个目标值,我希望findcol 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 

我想有公式返回最后两列(最小和最大)。

笔记:

  1. 即使引用超出最后一行的范围(例如,在公式中使用$A$8:$A$50 ,不一定是$A$8:$A$24 ),也可以方便地使用某些方法,以便新数据可以添加在列A,B的底部,一切都自动更新。

  2. 列A,B实际上将包含其他数据,标题等,所以我猜一些公式可能不适用于整个列的引用,如$A:$A

编辑 :我刚刚find了一些类似/相关的职位

如果符合其他列的条件,则在一个范围内查找MIN / MAXdate

Excel 2010中的条件最小值和最大值

在B列中select最小值为A列中的相同值excel?

在列A中给定值,在EXCEL的列B中查找最小值/最大值

在excel中find最大或最小值,条件

这个对我有用。

分钟:

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

最大值:

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

请注意,它是一个数组公式,因此您需要按CTRL + SHIFT + ENTER

你可以使用数组公式给你你需要的答案。

对于最小值,您可以使用单元格E1中的公式:

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

而单元格F1的最大公式为:

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

要input一个数组公式,除了大括号(花括号)之外,还要input所有内容,然后在按下回车键的同时按下Ctrl和Shift键…这将添加大括号,公式将被视为数组公式。

一旦input,您可以将公式向下复制到其他匹配的值

数组公式通过计算每个组合来工作。 它将计算A1中的值是否与D1相同,如果是,则将给出B1的值,则如果A2的值与D1相同,则将给出B2的值,依此类推。 这将给你一个B列值的列表(或数组),其中A的值是匹配的。 MIN / MAX然后按正常计算。

INDEX函数可以通过使用一些mathbuild立一个标准公式来帮助您避免CSE,这个公式可以是零,也可以是天文学的任何不匹配的值,这取决于您是在寻找一个MAX还是MIN结果。

伪MAXIF公式更容易,所以我会从那里开始。

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

在math上使用Excel时,Excel会将任何布尔值TRUE语句设置为1 ,将任何FALSE设置为0 。 将列B中的值乘以1会使值保持不变; 乘以0将导致零。 INDEX函数根据是否符合标准,将未改变的值和零的数组传递给MAX函数。 结果将是列B的最大值,其中列A等于标准。

伪MINIF公式基本上通过math排除任何不匹配的值,只留下匹配的值来从中selectMIN

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

同样,TRUE是1 ,FALSE是0,但是这次我们使用它来添加1E + 99( 1后跟99个零,这不会是任何事情的MIN )到任何不匹配的值。 匹配值将被添加到等于0的0×1E + 99 ,并且不会改变它们的值。

MAXIF和MINIF与标准公式

我所使用的完整列单元格范围引用不会对计算滞后产生负面影响,而不会对类似的数组公式产生负面影响。

您可以使用命名范围,让引用自行计算,假设数据中没有空白。
例如

ARange = OFFSET($ A $ 2,0,0,COUNT($ A:$ A))
BRange = OFFSET($ B $ 2,0,0,COUNT($ A:$ A))

(我使用相同的COUNT来确保区域大小相同)

现在我可以使用数组公式=MAX((ARange=D2)*(BRange))来获得最大值(min)。
数组公式使用CTRL + SHIFT + Enterinput
请参阅@ Simoco的正确答案