我当前的表格如下
公司-----年----尺寸大小-----交易所
一个----------- 2000 ----- ------- 80 A
一个----------- 2001 ----- ------- 85 A
乙----------- 2002 ------ ------ 90ç
我想将公司分为两类" Big"和"小"。
对于特定年份,如果公司规模大于交易所A中该年度公司规模的中位数,将被称为" BIG"。 像这样的东西,
=如果([大小] GT; MEDIANX(过滤器(过滤器(TBL1,[年] = A),[年]),[大小]),#34;大""小& #34)
我知道我使用过滤器的方式是错误的。我不知道该怎么做。请帮我。
答案 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")