我正在使用以下数组论坛:
=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两次。
请有人告诉我如何获取重复值(不重复的客户名称!)来显示?
我做错了吗?提前致谢
答案 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会自动将{}
放在公式周围,以表示数组公式。
有关单元格地址的参考,请参阅照片。
如果按顺序添加值,则可以将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数组公式,因此请将它们作为普通公式输入。