2016-10-18 11 views
0

Mein Datensatz bietet einen monatlichen Snapshot von Kundenkonten. Unten ist eine sehr vereinfachte Version:Berechnung der Anzahl neuer ID-Nummern pro Monat in Powerpivot

Date_ID | Acc_ID 
------- | ------- 
20160430| 1 
20160430| 2 
20160430| 3 
20160531| 1 
20160531| 2 
20160531| 3 
20160531| 4 
20160531| 5 
20160531| 6 
20160531| 7 
20160630| 4 
20160630| 5 
20160630| 6 
20160630| 7 
20160630| 8 

Kunden ihre Konten öffnen oder schließen kann, und ich möchte jeden Monat die Anzahl der ‚neuen‘ Kunden berechnen. Die Anzahl der 'exited' Kunden wird ebenfalls hilfreich sein, wenn dies möglich ist.

So in dem obigen Beispiel sollte ich folgendes Ergebnis:

Month | New Customers 
------- | ------- 
20160430| 3 
20160531| 4 
20160630| 1 

Grundsätzlich ich unterschiedliche Kontonummern in der gewählten und Vormonats alle, die im Monat existieren und nicht die vorherigen vergleichen wollen neue Mitglieder, alle, die im letzten Monat dort waren und nicht in der ausgewählten, werden verlassen.

Ich habe gesucht, aber ich kann anscheinend keine ähnlichen Probleme finden, und ich weiß kaum, wo ich anfangen soll - ich habe versucht, mit CALCULATE und FILTER zusammen mit DATEADD die Daten zu filtern, um zwei Monate zu bekommen, und Zählen Sie dann die eindeutigen Werte. Meine PowerPivot-Fähigkeiten sind jedoch nicht auf dem neuesten Stand, um dies alleine zu lösen!

+0

Es ist schwer, die Daten zu verstehen, die Sie eingefügt haben. Glauben Sie, dass Sie sie neu formatieren könnten? – Charlie

Antwort

0

die neuen Benutzer zu bekommen ist relativ einfach - ich eine berechnete Spalte hinzufügen würde, die in früheren Monaten für diesen Benutzer Zeilen zählt, und wenn sie nicht existieren, dann sind sie ein neuer Benutzer:

=IF(CALCULATE(COUNTROWS(data), 
       FILTER(data, [Acc_ID] = EARLIER([Acc_ID]) 
          && [Date_ID] < EARLIER([Date_ID]))) = BLANK(), 
    "new", 
    "existing") 

Einmal dies ist an Ort und Stelle kann man einfach ein Maß für new_users schreiben:

=CALCULATE(COUNTROWS(data), data[customer_type] = "new") 

die stornierten Benutzer zu erhalten ist ein wenig schwieriger, weil es bedeutet, müssen Sie in der Lage sein, den Stand des Monat suchen rückwärts - keinen der Zeit Intelligenz Sachen In PowerPivot funktioniert sie aus der Box heraus e, da Sie keine echte Datumsspalte haben.

Es ist fast immer eine gute Praxis, eine separate Tabelle in Ihren PowerPivot-Modellen zu haben. Dies ist ein guter Weg, um dieses Problem zu lösen - im Wesentlichen sollte die Tabelle 1 Datensatz pro Datum mit einem eindeutigen Schlüssel enthalten Beziehung. Vielleicht post mit ein paar mehr Details.

+0

Großartig, das scheint zu funktionieren.Ich habe tatsächlich eine verknüpfte Tabelle in meinem Modell - Entschuldigung, ich habe vergessen, in meiner ersten Frage zu erwähnen. – Yarwood

0

Dies ist eine alternative Methode zu Jacobs, die auch funktioniert. Es vermeidet das Erstellen einer berechneten Spalte, aber ich finde die berechnete Spalte tatsächlich nützlich, um sie als Flag für andere Kennzahlen zu verwenden.

=CALCULATE(
    DISTINCTCOUNT('Accounts'[Acc_ID]), 
    DATESBETWEEN(
     'Dates'[Date], 0, LASTDATE('Dates'[Date]) 
    ) 
) - CALCULATE(
    DISTINCTCOUNT('Accounts'[Acc_ID]), 
    DATESBETWEEN(
     'Dates'[Date], 0, FIRSTDATE('Dates'[Date]) - 1 
    ) 
) 

Es nutzt grundsätzlich die Termine Tabelle eine deutliche Anzahl aller ACC_ID von Anbeginn der Zeit bis zum ersten Tag des Zeitraums ausgewählt zu machen, und subtrahiert die von der Anzahl der eindeutigen Werten aller ACC_ID von Anfang an Zeit bis zum letzten Tag des ausgewählten Zeitraums. Dies ist im Wesentlichen die Anzahl der neuen eindeutigen Acc_ID, obwohl Sie nicht herausfinden können, welche Acc_IDs diese Methode verwenden.

ich konnte dann berechnen 'verlassen Konten durch den Vormonaten insgesamt als "bestehende Konten unter:

=CALCULATE(
    DISTINCTCOUNT('Accounts'[Acc_ID]), 
    DATEADD('Dates'[Date], -1, MONTH) 
) 

dann das‚neue Konten‘und Subtrahieren der‚Gesamtrechnung‘:

=DISTINCTCOUNT('Accounts'[Acc_ID]) 
Verwandte Themen