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
问题:
从上表中,我想找到两个最大的"销售"当Fruit =" apple"和保证金> = 10.正确的答案是第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
但是返回第2行和第6行,因为第一个匹配是来自" banana"不是" apple"。
我试过了
=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),因为这些只是" apple"的第一次出现。从表格的底部开始。它们不是最大的值。
可以使用Excel公式完成,还是需要宏?如果是宏,我可以请求宏的帮助吗?谢谢!
答案 0 :(得分:1)
使用此公式:
=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和F3中找到第一个和第二个。
编辑#1
要处理重复项,我们需要添加(COUNTIF($G$1:G1,$D$2:$D$7) = 0)
。 $G$1:G1
需要在此公式的第一个展示位置正上方引用单元格。所以公式需要至少从第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))