Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
NoeAutEur
Contributor
Contributor

Problem mit SetAnalysis

Ich möchte eine KPI erstellen:
Auszuwertender Zeitraum: YearMonth des maximalen Datums im Feld [Date Created] (z.b. wenn Maximum in [Date Created]=20.08.2019, dann soll nur 2019-Aug ausgewertet werden)
Feld [Cluster] soll ein bestimmter Wert sein, z.B. "Cluster1"
Die KPI soll in der Zählung über das Feld [ID] bestehen (Distinct nicht nötig, da [ID] immer unique ist)
Die KPI soll auf Selektionen nicht reagieren.

Habe es mit:

=Count({1<[Date Created.autoCalendar.YearMonth] = {"=Date(max([Date Created]), 'YYYY-MMM')"}+[Cluster]={"Cluster1"}>} ID)

versucht, funktioniert aber nicht.
Kann mir jemand weiter helfen?
Danke!

9 Replies
Gysbert_Wassenaar

=Count({1<[Date Created.autoCalendar.YearMonth] = {"=Date(max([Date Created]), 'YYYY-MMM')"}, [Cluster]={'Cluster1'}>} ID)


talk is cheap, supply exceeds demand
NoeAutEur
Contributor
Contributor
Author

...die Beschränkung auf das höchste auftretende YYYY-MMM funktioniert leider nicht, die KPI liefert stattdessen den Wert für die aktuelle Selektion.

marcus_sommer

Setze mal die Ignorierung der Datumsselektion auch in die max(), wie:

=Count({1<[Date Created] = {"=Date(max({1} [Date Created]), 'YYYY-MMM')"}, [Cluster]={'Cluster1'}>} ID)

oder

=Count({1<[Date Created] = {"=Date(max({< [Date Created] = >} [Date Created]), 'YYYY-MMM')"}, [Cluster]={'Cluster1'}>} ID)

- Marcus

NoeAutEur
Contributor
Contributor
Author

....habe beide Varianten probiert, es bringt leider keine Lösung. Die Selektion auf das max-Datum YYYY-MMM funktioniert einfach nicht. Mit der 1 in der Klammer bekomme ich stets die Anzahl pro Cluster über den Gesamtzeitraum, ohne die Anzahl pro Cluster über den selektierten Zeitraum....

Markus

marcus_sommer

Was mir gerade noch auffällt ist, dass für die Set Analysis Bedingung keine adhoc-Variable genutzt wird - das ist nicht immer zwingend erforderlich, häufig aber doch, also probiere mal:

=Count({1<[Date Created] = {"$(=Date(max({1} [Date Created]), 'YYYY-MMM'))"}, [Cluster]={'Cluster1'}>} ID)

Aus Deiner Antwort entnehme ich aber, dass diese max-Berechnung nicht global, sondern im Kontext der Dimensionen erfolgen soll. Das geht mit einer klassischen Set Analysis nicht, da diese im Prinzip einer Selektion entspricht. Wenn man sowas trotzdem so ähnlich umsetzen möchte, könnte man es so probieren:

=Count({1<[Date Created] = {"=[Date Created]=max([Date Created])"}, [Cluster]={'Cluster1'}>} ID)

Es hängt aber immer auch vom Datenmodell ab, ob dass so funktioniert oder nicht.

- Marcus

 

NoeAutEur
Contributor
Contributor
Author

Funktioniert leider auch beides nicht...
[Date Created] und [Cluster] sind als Dimensionen angelegt. Count([ID]) als Kennzahl.
Die gewünschte KPI soll die Kennzahl für eine bestimmte Selektions-Kombination der beiden Dimensionen (max YYYY-MMM und Clusterwert) anzeigen und dabei eben nicht auf die Selektionen in den Diagrammen reagieren. Eine ganz gewöhnliche KPI mit count([ID]) kann ich per Diagrammselektion auf den gewünschten Wert einstellen.
Alle Werte stehen in einer einzigen Tabelle, ID ist wie gesagt unique, daneben kommen alle möglichen Datumswerte sowie eine Zuordnung in ein Cluster vor.
Eine KPI mit =Date(max([Date Created]), 'YYYY-MMM') liefert zwar den gewünschten Wert für den Zeitraum, jedoch lässt sich dieser nicht als Selektionskriterium verwenden.

Kurz und umgangssprachlich: zähle alle IDs im zuletzt aufgetretenen Monat/Jahr die im Cluster1 liegen....

Danke für Deine bisherigen Bemühungen, vielleicht hast Du ja noch eine Idee.

Markus

marcus_sommer

So richtig ist mir noch nicht klar, mit welchen Daten welches Ergebnis erzielt werden soll. Das oben erwähnte max-Datum berücksichtigt das Cluster jedenfalls nicht, dass müsste man gegebenenfalls da noch mit hinzufügen, wie:

Date(max({< [Cluster]={'Cluster1'} >} [Date Created]), 'YYYY-MMM')

Darüber hinaus, dass Ergebnis von dieser max-Berechnung ist ein einzelnes Datum und nicht ein Jahr-Monat Zeitraum, das Datum ist nur dahingehend formatiert.

- Marcus

 

NoeAutEur
Contributor
Contributor
Author

Das oben erwähnte max-Datum war bloß eine andere KPI die ich erstellt habe um das Auslesen des max-Datums zu testen.

Mein Ziel ist jedoch:
"zähle alle IDs im zuletzt aufgetretenen Monat/Jahr die im Cluster1 liegen"

Im letzten Absatz gibst Du mir jedoch den entscheidenden Hinweis, nämlich dass hier mit der Date-Funktion nur eine Formatierung erreicht wird und somit eine Selektion auf den Jahr-Monat-Zeitraum nicht möglich ist. Daran liegt es mit Sicherheit: Qlik formatiert also den max-Datumswert als YYYY-MMM, behält als Selektionskriterium jedoch den ursprünglichen Datumswert.
Man braucht also eine andere als die Datumsfunktion um nach dem max Jahr-Monat Zeitraum zu selektieren.

Ich werde suchen, bin jedoch auch für Vorschläge dankbar!

Markus

marcus_sommer

Am Besten ist es einen Master-Kalender zu nutzen, der alle benötigten Felder, wie KW, Monat, Jahr, fortlaufende JahrMonat, Perioden, Flags usw. beinhaltet - und das sowohl mit formatierten (dual) Werten als auch mit rein numerischen Werten. Bei Dir wäre es jetzt wohl einfach: max(JahrMonat).

Mehr Info's hierzu gibt es hier: How-to-use-Master-Calendar-and-Date-Values

- Marcus