Excel 按两个值之间的差值对列表进行排序
我有以下Excel电子表格:Excel 按两个值之间的差值对列表进行排序,excel,excel-formula,Excel,Excel Formula,我有以下Excel电子表格: A B C D 1 Budget Actual Sort by Variancy (descending) 2 Product A 500 250 Product F 3 Product B 900 8
A B C D
1 Budget Actual Sort by Variancy (descending)
2 Product A 500 250 Product F
3 Product B 900 800 Product D
4 Product C 300 450 Product C
5 Product D 400 600 Product B
6 Product E 700 300 Product A
7 Product F 150 900 Product E
正如您在栏A中所看到的,我列出了不同的产品,在栏B中,我列出了它们的预算值,在栏C中列出了实际值
现在,我想根据预算实际差异在列D中以降序(从最高正差异开始)列出这些产品
我想到的唯一公式是=LARGE(B2:B7,1)
,但它只按预算值(B列)或实际值(C列)对产品进行排序。而不是两个值之间的差异
你知道我可以用什么公式根据方差对D列中的产品进行排序吗
请注意:
我知道我可以添加一个helper列
,在其中我计算列B和列C之间的差异,然后在helper列
上使用大的
函数,但我正在寻找一个没有这样一个helper列
的解决方案
您可以使用以下内容(即使存在重复的差异):
D2
中的公式:
=INDEX($A$1:$A$7,LARGE(INDEX(($C$2:$C$7-$B$2:$B$7=AGGREGATE(14,3,$C$2:$C$7-$B$2:$B$7,ROW(1:1)))*($A$2:$A$7<>D1)*ROW($A$2:$A$7),),1))
=指数($A$1:$A$7,大型)(指数($C$2:$C$7-$B$2:$B$7=总计(14,3,$C$2:$C$7-$B$2:$B$7,行(1:1))*($A$2:$A$7D1)*行(A$2:$A$7),1))
拖下来
如果存在重复的差异,它将获取A列中表示该差异的最后一个值,该值尚未在D列中显示。如果有SORTBY()(当前仅适用于Office 365内部人员),则将其放入D2,它将自动溢出:
=SORTBY(A2:A7,B2:B7-C2:C7,1)
只要你没有任何重复的差异,那么=索引($A$2:$A$7,匹配(聚合(14,3,$C$2:$C$7-$B$2:$B$7,行(1:1)),索引($C$2:$C$7-$B$2:$B$7,),0))
在D2
中工作得很好。正是我需要的。如果值不是唯一的,您还有其他选择吗?非常感谢。对此有何想法: