根据标准对投资组合进行排序

时间:2016-07-07 13:22:29

标签: excel sorting filtering powerpivot

我当前的表格如下

公司-----年----尺寸大小-----交易所

一个----------- 2000 ----- ------- 80 A

一个----------- 2001 ----- ------- 85 A

乙----------- 2002 ------ ------ 90ç

我想将公司分为两类" Big"和"小"。

对于特定年份,如果公司规模大于交易所A中该年度公司规模的中位数,将被称为" BIG"。 像这样的东西,

=如果([大小] GT; MEDIANX(过滤器(过滤器(TBL1,[年] = A),[年]),[大小]),#34;大""小& #34)

我知道我使用过滤器的方式是错误的。我不知道该怎么做。请帮我。

2 个答案:

答案 0 :(得分:0)

你的问题措辞不是特别好,因为它让我想知道我在回答时是否做出了正确的假设,但基本上我认为你需要类似于中位数的数组公式。

=IF(C2>MEDIAN(IF($D$2:$D$5="A",IF($B$2:$B$5=B2,$C$2:$C$5))),"Big","Small")

如果当年公司规模大于交易所A当年公司规模的中位数,这应该会给你“大”。

答案 1 :(得分:0)

我假设你要求PowerPivot解决方案,因为你的问题被标记为。

DAX(a.k.a.Power Pivot)公式MEDIAN()仅适用于Excel 2016的预览版(请参阅此处:https://msdn.microsoft.com/en-us/library/dn802551.aspx)。

但是,您可以使用RANKX()

简单地构建自己的中值逻辑

首先,添加一个名为[RankInExchangeA]的新列:

=If([Exchange]="A",RANKX(FILTER(Table1,[Exchange]="A" && EARLIER([year])=[year]),[size]),Blank())

EARLIER()功能基本上意味着ThisRowsValue()

现在添加您想要的大/小栏:

=If([Exchange]="A",If([RankInExchangeA]<=CALCULATE(max([RankInExchangeA]),filter(Table1,EARLIER([year])=[year]))/2,"Small","Big"),"Other Exchange")

编辑:在公式中添加年份条件。

编辑2:正如评论中所述,以下公式可以使用MEDIANX()

=IF([size]>MEDIANX(FILTER(Table,[Exchange]="A"&&EARLIER([date])=[date]),[size]),‌​"Big","Small")