使用索引和匹配按子组获得最佳表现者

时间:2014-11-12 00:16:21

标签: excel excel-formula

我正在尝试将C列​​中的名称从最大到最小的分数排名。

Category    Score   Name        Total Rank  Apple Rank  Orange Rank
Apple   10  Joe     Rachel  Rachel  0
Orange  15  Don     Natalie 0   Natalie
Apple   20  James       Tom Tom 0
Apple   1   Rob     Nothing Nothing 0
Orange  3   Mary        Gina    0   Gina
Orange  100 Rachel      James   0   James
Orange  99  Natalie     Don 0   Don
Orange  87  Tom     Joe 0   Joe
Apple   27  Gina        Mary    Mary    0
Orange  30  Nothing     Rob 0   Rob

这适用于苹果和橘子的E栏,E2中的公式为

=INDEX($C$2:$C$25,MATCH(1,INDEX(($B$2:$B$25=LARGE($B$2:$B$25,ROWS(E$1:E1)))*(COUNTIF(E$1:E1,$C$2:$C$25)=0),),0))

但是,目标是将Apples与Apple和Oranges与Oranges进行比较。 只有,列F和G中的公式显示" 0"右侧Apple / Orange类别中那些行的值。

对于F2:

= IF($ A:$ A ="苹果",INDEX($ C:$ C,MATCH(1,INDEX(($ B:$ B = LARGE($ B:$ B, ROWS(F $ 1:F1)))*(COUNTIF(F $ 1:F1,$ C:$ C)= 0),),0)),0)

对于G2:

= IF($ A:$ A ="橙色",INDEX($ C:$ C,MATCH(1,INDEX(($ B:$ B = LARGE($ B:$ B, ROWS(G $ 1:G1)))*(COUNTIF(G $ 1:G1,$ C:$ C)= 0),),0)),0)

如何修改代码以便0值不会显示? 像这样的东西会很棒:(通过复制粘贴值来制作截图......)

Apple Rank  Orange Rank
Rachel  Natalie
Tom Gina
Nothing James
Mary    Don
    Joe
    Rob

1 个答案:

答案 0 :(得分:0)

注意:除非需要整个色谱柱范围,否则如果不限制这些范围,以下步骤可能会花费很长时间。

假设你在ColumnA中有以下内容:G和相应的布局:

enter image description here

然后ColumnsI:J可以通过将ColumnF:G和Paste Special ...,Values复制到I1,然后选择ColumnsI:J,HOME>来实现。编辑 - 查找&选择,替换...,查找内容:0,替换为:,全部替换,然后查找&选择,转到特殊...,选择空白(仅限),单击确定,右键单击其中一个选定单元格并删除...,向上移动单元格,确定。

要从ColumnF中移除0:G只用0替换每个公式中的最终""就足够了。