2016-07-07 4 views
0

Моя текущая таблица выглядит следующим образомСортировка портфелей на основе критериев

Company ----- год ---- размер ----- Обмен

--------- --2000 ----- 80 ------- A

A ----------- 2001 ----- 85 ------- A

B ----------- 2002 ------ 90 ------ C

Я хочу выделить компании на две категории: «Большая» и «Маленькая».

Для конкретного года, если размер компаний больше, чем средний размер компаний в этом году в Exchange A, будет называться «БОЛЬШОЙ». что-то вроде этого,

= если ([размер]> MEDIANX (фильтр (фильтр (tbl1, [год] = A), [год]), [размер]), "Большой", "Малый")

Я знаю, как я использовал фильтры, это неправильно. Я не знаю, как это сделать. Пожалуйста, помогите мне.

ответ

0

Ваш вопрос не очень хорошо сформулирован, так как мне остается задаться вопросом, правильно ли я сделал правильные предположения при ответе, но по сути, я думаю, вам нужно что-то вроде формулы массива с медианной.

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

Это должно дать вам «большой», если в течение этого года размер компании больше, чем медиана размера компании в этом году в обмен А.

+0

Спасибо за ваш ответ, и я прошу прощения за мой плохой формулировки. Вы поняли это правильно, но, к сожалению, формула, которую вы предоставили, не дает мне правильных ответов. –

+0

Да, просто проверено, и вы правы, что-то странное происходит с медианами и массивами, если я изменю его на SUM, тогда он работает нормально, вам, возможно, придется посмотреть, сможет ли кто-нибудь еще разобраться, почему это так.Я просто искал его, и, похоже, он соответствует тому, что сделали другие. [Здесь] (http://spreadsheets.about.com/od/2010statisticalfunctions/qt/2010-04-30-excel-2010-median-function.htm). –

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") 

EDIT: Добавлено год условие формул.

EDIT 2: Как уже упоминалось в комментариях, следующая формула будет работать с использованием MEDIANX():

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

Да, я прошу разрешения Powerpivot. Я использую excel 2016 и имеет функции median() и medianx(). В вашей формуле, я думаю, вы не рассматривали фильтр года. –

+0

Ты абсолютно прав. Я добавил условие года в свой ответ. Я бы также попытался предоставить решение с помощью Median(), но поскольку у меня нет Excel 2016, я не могу проверить формулу. – Djeramon

+0

@ Djeeramon Спасибо вам большое. Как я могу отредактировать решение, которое вы дали, если я хочу выделить их с одинаковыми критериями (Exchange A и Year) в три группы (30%, средний 40% и нижний 30%)? –

Смежные вопросы