2016-03-30 3 views
2

Я пытаюсь получить значение для повторения по группе в PowerPivot с использованием DAX.PowerPivot DAX Text Windowing Функция для повторения значения в группе

Мне удалось заставить этот вид окон работать для резюме в группе, но теперь я пытаюсь заставить его работать для текстового значения.

В качестве примера, у меня есть следующая таблица - Заказы - в моей PowerPivot модели:

 
OrderID ItemName Price IsSelected 
1   Printer 100   
1   Laptop  200  Y   
1   Ink  50    
2   Laptop  200    
2   Pen  10  Y 

Я хотел бы добавить вычисляемый столбец в модели следующим образом:

 
OrderID ItemName Price IsSelected Order_SelectedItem 
1   Printer 100     Laptop 
1   Laptop  200  Y   Laptop 
1   Ink  50     Laptop 
2   Laptop  200     Pen 
2   Pen  10  Y   Pen 

Как в стороне, поэтому я нуждаюсь в этом является то, что пользователи этой модели обычно группы по OrderID на результате поворота, и с полем, как это позволило бы им сразу увидеть, какой «выбранный» пункт для заказа был.

Я попытался создать вычисляемый столбец, SelectedItemName, как предшественник к моей функции кадрирования

=IF(Orders[IsSelected]=1, [ItemName], BLANK()) 

Однако BLANK вмешивается со следующим, как функция ЗНАЧЕНИЯ возвращается со слишком большим количеством строк в группе:

=CALCULATE(VALUES(Orders[SelectedItemName]); ALLEXCEPT(Orders; Orders[OrderID])) 

ALLNOBLANKROW не был полезным в установлении этого ... Я попытался использовать Резюмируя, различные фильтры, и так далее, но я просто не удалось взломать.

Это расстраивает, потому что кажется, что-то настолько простое (подобные числовые скопления довольно просты), но я не нашел очевидного решения - и я не нашел никого другого с этой конкретной проблемой.

Большое спасибо!

ответ

2

Вы можете использовать что-то подобное в вашей вычисляемый столбец

=CALCULATE(
    FIRSTNONBLANK(Orders[ItemName],COUNTROWS(Orders)) 
    ,FILTER(Orders, [IsSelected] = "Y" 
        && Orders[OrderID] = EARLIER(Orders[OrderID])) 
) 
+0

Ах, что это сделал. Благодаря! –

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