Excel 与critiera聚合并在阵列中复制
我有以下Excel电子表格:Excel 与critiera聚合并在阵列中复制,excel,Excel,我有以下Excel电子表格: A B C D E 1 ProdID Price Unique ProdID 1. Biggest 2. Biggest 2 2606639 40 2606639 50 50 3 2606639
A B C D E
1 ProdID Price Unique ProdID 1. Biggest 2. Biggest
2 2606639 40 2606639 50 50
3 2606639 50 4633523 45 35
4 2606639 20 3911436 25 25
5 2606639 50
6 4633523 45
7 4633523 20
8 4633523 35
9 3911436 20
10 3911436 25
11 3911436 25
12 3911436 15
在单元格D2:E4中,我想显示1。最大和2。列A中每个产品的最大价格。因此,我使用以下公式:
D2 =AGGREGAT(14,6,$B$2:$B$12/($A$2:$A$12=$C2),1)
E2 =AGGREGAT(14,6,$B$2:$B$12/($A$2:$A$12=$C2),2)
只要价格在第二个ProdID(4633523)中所示的列中是唯一的,此公式就有效
但是,一旦B列中的价格不是唯一的(例如,ProdID 26026639为50,ProdID 3911436为25),单元格D2:E4中的函数就不会显示正确的结果
您是否知道是否可以使用聚合公式并使用数组公式解决此问题?您可以检查第一个ProdID价格组合的出现次数,并在聚合函数的最后一个参数中使用该次数。所以不是
=AGGREGAT(14,6,$B$2:$B$12/($A$2:$A$12=$C2),2)
你会的
=AGGREGAT(14,6,$B$2:$B$12/($A$2:$A$12=$C2),2+COUNTIFS(A:A,C2,B:B,D2)-1)
当然你可以把“1+COUNTIFS…”但我这样说是为了更好地理解,它使用位置2+ProdID组合的出现次数和第一次出现后的最大数量。您可以检查第一个ProdID价格组合的出现次数,并在聚合函数的最后一个参数中使用它。所以不是
=AGGREGAT(14,6,$B$2:$B$12/($A$2:$A$12=$C2),2)
你会的
=AGGREGAT(14,6,$B$2:$B$12/($A$2:$A$12=$C2),2+COUNTIFS(A:A,C2,B:B,D2)-1)
当然,你可以把“1+COUNTIFS…”放在这里,但我这样说是为了更好地理解,它使用了ProdID组合的位置2+出现次数和第一次出现后的最大数。嗨,帕维尔,好主意,但据我所知,只有当A列中的值正好存在两次时,这个解决方案才有效。但是,这些值也可能存在2次以上。例如,对于ProdID 2606639,可能会出现50的价格适用于所有3个ProdID,而不是仅适用于2个。最后的列表将经常更改,因此不能保证它与我发布的示例中的值保持相同。不完全是两次。你可以把同一个ProdID的任意多行,这将给你第二高的唯一价格。但是是的,如果给定的ProdID只有一个唯一的价格,那么它将导致错误,这在本质上是正确的,因为没有第二大数字。但这可能是我误解了-如果ID只有一个唯一的价格,您希望它做什么?嗨,Pavel,好主意,但据我所知,这个解决方案只有在A列中的值正好存在两次时才有效。但是,这些值也可能存在2次以上。例如,对于ProdID 2606639,可能会出现50的价格适用于所有3个ProdID,而不是仅适用于2个。最后的列表将经常更改,因此不能保证它与我发布的示例中的值保持相同。不完全是两次。你可以把同一个ProdID的任意多行,这将给你第二高的唯一价格。但是是的,如果给定的ProdID只有一个唯一的价格,那么它将导致错误,这在本质上是正确的,因为没有第二大数字。但这可能是我误解了-如果ID只有一个唯一的价格,您希望它做什么?