Excel数组公式查找基于多个条件的最大值的行
Column: A | B | C | D Row 1: Variable | Margin | Sales | Index Row 2: banana | 2 | 20 | 1 Row 3: apple | 5 | 10 | 2 Row 4: apple | 10 | 20 | 3 Row 5: apple | 10 | 10 | 4 Row 6: banana | 10 | 15 | 5 Row 7: apple | 10 | 15 | 6 "Variable" sits in column A, row 1. "Fruit" refers to A2:A6 "Margin" refers to B2:B6 "Sales" refers to C2:C6 "Index" refers to D2:D6
题:
从上面的表格中,我想findFruit =“apple”和Margin> = 10时两个“Sales”值最大的行。正确答案是第3行和第6行的值。我尝试了以下方法成功。
我努力了
=LARGE(IF(Fruit="apple",IF(Margin>=10,Sales)),{1,2}) + CSE
这返回20和15,但不是行。
我努力了
=MATCH(LARGE(IF(Fruit="apple",IF(Margin>=10,sales)),{1,2}),Sales,0)+1
但是返回第二排和第六排的第一场比赛是来自“香蕉”而不是“苹果”的20和15。
我努力了
=INDEX(D2:D7,LARGE(IF(Fruit="apple",IF(Margin>=10,ROW(Sales)-ROW(INDEX(Sales,1,1))+1)),{1,2}),1)
但是这返回第7行和第5行(即“索引”6和4),因为这些只是从表格底部开始的“苹果”的第一次出现。 他们不是最大的价值。
这可以用Excel公式来完成,还是我需要一个macros? 如果macros观,我可以请帮助macros? 谢谢!
使用这个公式:
=INDEX(D:D,AGGREGATE(15,6,ROW($A$2:$A$7)/(($B$2:$B$7>=10)*($A$2:$A$7="apple")*($C$2:$C$7 = AGGREGATE(14,6,$C$2:$C$7/(($B$2:$B$7>=10)*($A$2:$A$7="apple")),F2))),1))
我把1和2分别放在F2和F3find第一个和第二个。
编辑#1
处理我们需要添加的重复项(COUNTIF($G$1:G1,$D$2:$D$7) = 0)
。 $G$1:G1
需要引用直接位于此公式第一个位置上方的单元格。 所以公式需要至less在第2行开始。
=INDEX(D:D,AGGREGATE(15,6,ROW($A$2:$A$7)/((COUNTIF($G$1:G1,$D$2:$D$7) = 0)*($B$2:$B$7>=10)*($A$2:$A$7="apple")*($C$2:$C$7 = AGGREGATE(14,6,$C$2:$C$7/(($B$2:$B$7>=10)*($A$2:$A$7="apple")),F2))),1))