2017-03-29 4 views
0

Ich habe eine Liste der Bestellzeilen (erste Tabelle des Screenshots beigefügt). Ich würde gerne wissen, wie viele Bestellungen haben 1 Einheit, wie viele 2 Einheiten, etc.DAX-Code zum Zählen der Anzahl der Bestellungen mit insgesamt n Einheiten

Ich mache dies normalerweise mit 2 Pivot-Tabellen (wie in der Screenshot im Anhang gezeigt). Das Problem ist, dass ich eine Zwischentabelle erstellen muss, und wenn ich mehr als 1 Millionen Bestellungen habe, konnte ich diesen Ansatz aufgrund der Anzahl von Zeilen nicht erreichen.

Ich habe auf verschiedene Weise mit CALCULATE versucht, aber ich kann den richtigen Weg nicht finden, es zu tun ...

Hier ist der Screenshot: Tables

Vielen Dank im Voraus!

Jorge

EDIT: Ich benutze MS Excel 2017 nicht Power-BI

+0

Verwenden Sie Power-Pivot nur oder haben Sie Power-BI auch verwenden? –

+0

Excel und Power Pivot (kein Power BI) – jormaga

+0

Ich habe eine Lösung mit der [SUMMARIZE] (https://msdn.microsoft.com/en-us/library/gg492171.aspx) Funktion gefunden, aber es scheint so Es ist nicht in Power Pivot verfügbar. –

Antwort

1

Der richtige Weg, es wird mit der Funktion zusammenfassen (ineinander verschachtelt) zu tun, wie folgt aus:

SUMMARIZE(
    SUMMARIZE(
     Orders, 
     Orders[OrderNo], 
     "Sum of Units", SUM (Orders[Units]) 
    ), 
    [Sum of Units], 
    "Number of Orders", COUNTROWS (
     SUMMARIZE(
      Orders, 
      Orders[OrderNo], 
      "Sum of Units", SUM (Orders[Units]) 
     ) 
    ) 
) 
ORDER BY [Sum of Units] ASC 
1

Diese Lösung beinhaltet die Verwendung der SUMMARIZECOLUMNS-Funktion, die nur in Power BI, Analysis Services 2016, or Excel 2016 verfügbar zu sein scheint.

SUMMARIZECOLUMNS ist eine viel effizientere Möglichkeit, Übersichtstabelle zu erstellen.

Die beiden Übersichtstabellen werden mit dem Ausdruck wieder aufgebaut wie in der Power BI folgt:

new table

Order Summary = 
SUMMARIZECOLUMNS(
    Orders[OrderNo], 
    "Sum of Units", SUM(Orders[Units]) 
) 

-

Unit Summary = 
SUMMARIZECOLUMNS(
    'Order Summary'[Sum of Units], 
    "Number of Orders", COUNTROWS('Order Summary') 
) 

Das Ergebnis wird wie zu erwarten:

result

+0

Vielen Dank für Ihre Antwort! Ich hoffe, dass es eine solche Lösung in Excel 2016 geben wird – jormaga

Verwandte Themen