获得列A的每个不同值的列B的最大值
我有一个Excel电子表格的forms:
A,B X,1 X,5 Y,4 Y,11 X,7 Z,1
我想获得A列的每个不同值的列B的最大值 – 我怎样才能通过纯Excel的公式做到这一点 ?
预期结果(顺序无关):
A,B Y,11 X,7 Z,1
换句话说,我想Excel的SQL查询版本
SELECT A,max(B) FROM myTable GROUP BY A
任何版本的Excel是可以接受的,但我使用365一个。
数据透视表是一个可以接受的方法(我目前是用一个数据透视图自己做的),但我更愿意select一个真正的公式 – 这个问题的主要目标是提高我对Excel公式编程的理解。 没有VBA
加里的学生答案是正确的。 我加了一些东西。
此外,该方法的链接: http : //blog.contextures.com/archives/2011/07/27/finding-min-if-or-max-if-in-excel/
一个明确的值列表可以通过几种方式生成,这里有一个:
这里有一个方法或两个不同的列表的链接。 所有与数组公式:
忽略重复项并在Excel中创build唯一值的新列表
只使用公式在Excel中获取唯一值
在列A和B中的数据使用数组公式 :
=MAX(IF(A1:A6="x",B1:B6))
相同的“Y”和“Z”
数组公式必须使用Ctrl + Shift + Enterinput,而不仅仅是Enter键。
注意配方栏中的大括号
编辑#1:
要自动生成公式,首先将A列复制到C列。
然后使用“ 数据”选项卡中的“删除重复项”function:
然后在单元格D1中input数组公式 :
=MAX(IF(A$1:A$14=C1,B$1:B$14))
并抄下来:
该公式只input一次,然后复制下来!
数据透视表是正确的答案。
- select列A的标题,并将其拖到行标签部分。
- select列B的标题并将其拖到“值”部分。
- 单击值部分中列B的标题上的箭头,然后select值字段设置。
- select最大
尝试下面。 注意我将所需的输出表移动到列D和E.您不需要将任何值硬编码到公式中。
数据
DE Y 11 X 7 Z 1
公式
E2 Formula: ={MAX(--($D1=A1:A6)*B1:B6)} E3 Formula: ={MAX(--($D2=A2:A7)*B2:B7)} E4 Formula: ={MAX(--($D3=A3:A8)*B3:B8)}