Excel - 根据条件查找顶部“X”值

时间:2016-02-15 22:24:07

标签: excel

我正在尝试解决以下问题。

我想根据指定的标准找到顶部'X'的数值。

我在网上找到了以下代码,但我无法理解/修改它以包含if语句。

=INDEX(DATA!B:B,MATCH(1,INDEX((DATA!B:B=LARGE(DATA!B:B,ROWS(U$1:U1)))*(COUNTIF(U$1:U1,DATA!B:B)=0),),0))

数据!B:B指的是我存储我的值的列。

我在C列中有一个名单列表,在A列中有一个状态列表。

基本上,我只希望显示那些处于特定状态和名称的顶级值。

State   Random Value    Name
VIC     $99,581.00      Dan
WA      $95,713.00      Jim
NT      $93,469.00      Bob
NSW     $93,259.00      Cat
NSW     $92,425.00      Dan
ACT     $89,513.00      Hat
NSW     $88,727.00      Potato
NSW     $86,612.00      Fence

编辑*

我忘了提到我尝试使用数据透视表,但我的主要问题是我不希望将人或类似的字符串组合在一起。当我创建我的数据透视表时,它将两个字符串组合在一起并将它们相加。我希望每个都有不同的条目。

3 个答案:

答案 0 :(得分:1)

试试这个公式:

=INDEX($B$1:$B$9,AGGREGATE(14,6,ROW($1:$9)/(($A$1:$A$9="NSW")*($C$1:$C$9="Dan")),ROW(1:1)))

enter image description here

您可以根据需要将其向下拖动多行,它将带来符合条件的下一个最高金额。

行(1:1)每减少一行就会增加一行,从而使第二行达到第三高。

答案 1 :(得分:0)

按B列排序并选择前x行。如果需要,可以使用高级排序。

答案 2 :(得分:0)

我会在数据上使用数据透视表 - 一旦掌握了数据就很容易了。这是一个链接,向您展示如何:Excel Pivot Table Filters Top X

一旦掌握了它,也可以更容易地更改标准。如果您的数据中包含另一个包含城市的列,那么您不仅可以按州进行过滤,而且如果您想要在每个州内排名前5位和前5个城市,那么这也很容易获得。您需要学习如何使用标签/列标题。

编辑:基于你对之前答案的评论,并且不希望被困在Pivots上,但是这个怎么样: 如果要按状态排序,则行标签1 =随机值,行标签2 =状态;在单元格E1上最大到最小。 RV - State

如果要按名称排序,则行标签1仍为=随机值,行标签2 =名称;在单元格E1上也最小到最小。 RV - Name

如果要按名称和状态进行过滤,则行标签1 =随机值,RL2 =名称,RL3 =状态。使用行标签1上的排序,并过滤名称和状态。 RV - Name&State