根据A列的每个不同值获取B列的最大值

时间:2015-06-09 13:02:06

标签: excel excel-formula

我有一个表格的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

4 个答案:

答案 0 :(得分:5)

加里的学生答案是正确的。我添加了几件事。

enter image description here

此外,该方法的链接: http://blog.contextures.com/archives/2011/07/27/finding-min-if-or-max-if-in-excel/

可以通过几种方式生成不同的值列表,这里有一个: enter image description here

这里有一个或两个方法的链接用于不同的列表。全部使用数组公式:

Ignore Duplicates and Create New List of Unique Values in Excel

Getting unique values in Excel by using formulas only

答案 1 :(得分:2)

使用 A B 列中的数据,使用数组公式

=MAX(IF(A1:A6="x",B1:B6))

" y"和" z"

必须使用 Ctrl + Shift + 输入输入

数组公式,而不仅仅是 Enter key。

enter image description here

注意公式栏中的大括号

修改#1:

要自动生成公式,请先将 A 列复制到 C 列。

然后使用 Data 标签中的删除重复功能:

enter image description here

然后在单元格 D1 中输入数组公式

=MAX(IF(A$1:A$14=C1,B$1:B$14))

并复制下来:

enter image description here

公式只输入一次,然后被复制下来!

答案 2 :(得分:1)

数据透视表是正确的答案。

  1. 选择列A的标题并将其拖至行标签部分。
  2. 选择列B的标题并将其拖到“值”部分。
  3. 点击值部分中B列标题上的箭头,然后选择“值字段设置”。
  4. 选择最大

答案 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)}