我有一个表格的Excel电子表格:
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。
数据透视表是一种可以接受的方法(我目前用自己的方式做了一个调查)但我更倾向于使用真正的公式 - 这个问题的主要目标是增强我对公式编程的理解。 Excel中。 没有VBA
答案 0 :(得分:5)
加里的学生答案是正确的。我添加了几件事。
此外,该方法的链接: http://blog.contextures.com/archives/2011/07/27/finding-min-if-or-max-if-in-excel/
可以通过几种方式生成不同的值列表,这里有一个:
这里有一个或两个方法的链接用于不同的列表。全部使用数组公式:
Ignore Duplicates and Create New List of Unique Values in Excel
答案 1 :(得分:2)
使用 A 和 B 列中的数据,使用数组公式:
=MAX(IF(A1:A6="x",B1:B6))
" y"和" z"
必须使用 Ctrl + Shift + 输入输入数组公式,而不仅仅是 Enter key。
注意公式栏中的大括号
修改#1:强>
要自动生成公式,请先将 A 列复制到 C 列。
然后使用 Data 标签中的删除重复功能:
然后在单元格 D1 中输入数组公式:
=MAX(IF(A$1:A$14=C1,B$1:B$14))
并复制下来:
公式只输入一次,然后被复制下来!
答案 2 :(得分:1)
数据透视表是正确的答案。
答案 3 :(得分:1)
请尝试以下操作。注意我将您想要的输出表移动到D列和E列。您不需要将任何值硬编码到公式中。
数据强>
D E
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)}