Excel - 与大功能匹配的索引:显示重复值?

时间:2016-03-29 15:43:49

标签: arrays excel indexing match

我正在使用以下数组论坛:

=INDEX('Opp Data'!$H:$H,MATCH(1,('Opp Data'!$G$1:$G$1000=$A$10)*('Opp Data'!$K$1:$K$1000=LARGE(IF('Opp Data'!$G$1:$G$1000=$A$10,'Opp Data'!$K$1:$K$1000),6)),0))

该公式旨在查找我的Opp数据表,其布局如下:

Column H         Column G          Column K
Client A         Aerospace         £200
Client B         Rail              £150
Client C         Aerospace         £100

公式应该检查哪些客户的支出最高并且使用大功能,每行我可以设置第一,第二和第三大值等。

我也正在查看我的单元格A10,其中包含“航空航天”一词。 该公式应仅返回在g列中具有与其对应的航空航天的客户名称。

我的最终结果应该是这样的。

Client A
Client C

这样可以正常工作,但是如果我们在列k中有两个具有相同值的客户端,那么:

Column H         Column G          Column K
Client A         Aerospace         £200
Client B         Rail              £150
Client C         Aerospace         £100
Client D         Aerospace         £100

然后没有列出客户端D,我的公式再现客户端c两次。

请有人告诉我如何获取重复值(不重复的客户名称!)来显示?

我做错了吗?提前致谢

2 个答案:

答案 0 :(得分:0)

我也遇到过这个问题。我会对更优雅的解决方案感兴趣,但我的解决方法是添加一个额外的列来修改列K以使值唯一,并使我的Large函数引用该列而不是K.类似于:

=$K2 + row()/10000000  

应为您在数组函数中引用的每一行创建唯一值。

答案 1 :(得分:0)

您需要在数组公式中添加Countif():

=IFERROR(INDEX('Opp Data'!$H:$H,MATCH(1,('Opp Data'!$G$1:$G$1000=$A$10)*('Opp Data'!$K$1:$K$1000=LARGE(IF('Opp Data'!$G$1:$G$1000=$A$10,'Opp Data'!$K$1:$K$1000),ROW(1:1))*(COUNTIF($C$10:$C10,'Opp Data'!$H$1:$H$1000)=0)),0)),"")

计数是否随着被拖累而增长,看看什么是绝对的,什么是相对的。

我还添加了ROW(1:1),然后它是动态的,因为它被拖动它从1变为2到3等等,因此Large中的k将自动调整。 / p>

作为数组公式,必须在退出编辑模式时使用Ctrl-Shift-Enter确认。完成后,Excel会自动将{}放在公式周围,以表示数组公式。

有关单元格地址的参考,请参阅照片。

enter image description here

如果按顺序添加值,则可以将AGGREGATE()公式用于非CSE数组。

获取值:

=IFERROR(AGGREGATE(14,6,'Opp Data'!$K$1:$K$1000/('Opp Data'!$G$1:$G$1000=$A$10),ROW(1:1)),"")

然后在引用数字列的另一列中使用它:

=IF(D11="","",INDEX('Opp Data'!$H$1:$H$1000,AGGREGATE(15,6,ROW($1:$1000)/(('Opp Data'!$G$1:$G$4=$A$10)*('Opp Data'!$K$1:$K$4=Sheet12!D11)),COUNTIF($D$11:$D11,D11))))

这些是非Ctrl-Shift-Enter数组公式,因此请将它们作为普通公式输入。

enter image description here