2016-03-30 4 views
2

Ich versuche, einen Wert in einer Gruppe in PowerPivot mit DAX zu wiederholen.PowerPivot DAX Text Windowing Funktion, um einen Wert über eine Gruppe zu wiederholen

Ich habe es geschafft, diese Art von Windowing für Zusammenfassungen in der Gruppe zu arbeiten, aber jetzt versuche ich, es für einen Textwert arbeiten zu lassen.

Als Beispiel, ich habe die folgende Tabelle - Orders - in meinem Power Modell:

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

Ich möchte eine berechnete Spalte auf das Modell wie folgt hinzuzufügen:

 
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 

Der Grund, warum ich das brauche, ist, dass die Benutzer dieses Modells im Allgemeinen nach der OrderID auf dem resultierenden Drehpunkt gruppieren, und ein solches Feld würde ihnen erlauben, auf einen Blick zu sehen, was das "ausgewählte" Objekt für den Auftrag ist war.

Ich habe versucht, eine berechnete Spalte erstellen, SelectedItemName, als Vorstufe zu meiner Fensterfunktion

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

Allerdings ist die BLANK mit der folgenden stören, da die Werte Funktion mit zu vielen Zeilen kommt zurück pro Gruppe:

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

ALLNOBLANKROW bei der Festsetzung dies nicht hilfreich war ... ich habe versucht zusammenzufassen, verschiedene Filter zu verwenden, und so weiter, aber ich habe einfach nicht zu knacken es geschafft.

Es ist frustrierend, weil es so etwas so einfach scheint (ähnliche numerische Aggregationen sind ziemlich einfach), aber ich habe keine offensichtliche Lösung gefunden - und ich habe niemanden mit diesem speziellen Problem gefunden.

Vielen Dank!

Antwort

2

Sie so etwas in Ihrer berechneten Spalte

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

Ah verwenden können, das ist es getan. Vielen Dank! –

Verwandte Themen