Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
hallo zusammen,
ich bin noch relativ neu in QlikView und habe das Problem, dass ich gerne die Differenz von 2 Datumsfeldern in Monaten berechnen möchte - gleichzeitig soll dieses Ergebnis in Monaten die Anzeige einer Datentabelle steuern.
Welche Daten habe ich zur Verfügung:
Datum heute: today () - hat das Format DD.MM.YYYY
Faktendatum: datum_fakt ist bereits ein num. Format
Berechnet werden soll die Differenz zwischen today () und datum_fakt in Anzahl Monaten.
Die Daten der dazugehörigen Tabelle sollen mit den einzelnen Monatswerten angezeigt werden, wenn die Differenz innerhalb der letzten 12 Monate liegt.
kann mir hier jemand helfen?
vielen lieben Dank
Hallo Ulrike,
ich denke ich habe verstanden, was du willst.
Ich würde das immer noch mit einer set analysis expression machen in etwas so:
Bau dir ein straight table mit Dimension Monat (ich nehme an, dass du diese Dimension hast, am besten in einem Master Calendar zusammen mit allen benötigten Datumsfeldern, falls nicht, such mal nach Master Calendar hier im Forum, gibt einige Beispiele).
Als expression dann
=sum({<datum_Eroeffnung= {">=$(=monthstart(addmonths(today(),-12)))"} >} UmsatzFact)
Die Set analysis expression macht folgendes, sie selektiert (nur für diese Berechnung) alle Filialen mit Eröffnung nach dem Datum monthstart(addmonths(today(),-12)) was du von innen nach ausse lesen kannst als nimm heute (29.8.2011), rechne -12 Monate drauf (29.8.2010) and nimm davon den Monatsstart (1.8.2010).
Ob das im Detail wirklich so funktioniert, hängt ein wenig (ne eigentlich hauptsächlich), von deinem Datenmodell ab, ich gehe mal davon aus, wenn du ein Eröffnungsdatum selektierst, selektierst du implizit (weisser Hintergrund in Listboxen) die entsprechende Filiale und alle Umsätze mit.
Hoffe das hilft,
Stefan
Hallo Ulrike,
kannst du ein Beispiel geben und das Ergebnis, was du am ende sehen willst. ich kann dann versuchen.
Gruß
Sravan
PS: Es gibt eine Deutschsprachige Gruppe hier http://community.qlik.com/groups/german-user-group
Da kriegst du mehr antworten als hier, wenn du auf deutsch schreibst.
Hallo Ulrike,
ich glaube wir müssten erstmal festlegen, wie die Differenz definiert ist. zum Beispiel
2.9.2011 - 29.8.2011
Ergibt das eine Differenz von
0 Monaten - da noch kein ganzer Monat verstrichen ist
1 Monat - da die Termine innerhalb eines Monats liegen
2 Monaten, da August und September "betroffen" sind
oder ca. 0,1 Monat
GGf müsste man auch noch festlegen, wie lange ein "Standardmonat" ist.
Deine Frage klingt am Ende aber danach, dass du gar nicht direkt an der Differenz zwischen zwei Datumsangaben
interessiert bist, sondern nur alle Werte, deren Datum innerhalb einer gewissen Periode liegen, in deine Berechnung einbeziehen willst.
Das könntest du mit einem set analysis Ausdruck machen, z.b.
=sum({<datum_fakt= {">=$(=addmonths(today(),-12))"} >} DEINFACT)
Der Teil zwischen {<>} limitiert die Auswahl für die Berechnung auf Werte mit Datum innerhalb der letzten 12 Monate.
Genaueres zur set analysis siehe Hilfe oder auch
http://iqlik.wordpress.com/2010/11/27/the-magic-of-set-analysis-point-in-time-reporting/
Gegebenfalls musst du diesen Ausdruck auch noch erweitern, wenn du weitere Datumsfelder benutzt (dann musst du diese evtl, im Ausdruck noch löschen,
z.b. mit
,monat_fakt=
siehe dazu die Beispiele in obigem Link.
Hoffe das hilft,
Stefan
hallo Stefan,
vielen Dank für deine schnelle Antwort.
Mein Frage, die ich abzubilden versuche ist: zeige die Umsatzdaten nach Monaten für alle Filialen, die in den letzten 12 Monaten neu eröffnet wurden. Zu jeder Filiale gibt es das Eröffnungsdatum und ich habe mein System-Tagesdatum von heute zur Berechnung zur Verfügung.
Was ich benötige ist eigentlich die Differenz zwischen zwei Monatswerten, z.B.
heute: 29.08.2011
Eröffnungsdatum einer Filiale: 10.10.2010
mich interessiert dabei nicht die exakte Differenz in Tagen, sondern nur die der Monate, d.h. ich würde rechnen:
first of month (10/2010) zu first of month (08/2011) -> 10 Monate Differenz, dabei betrachte ich nicht, ob das Datum am Anfang, in der Mitte oder am Ende des Monats liegen.
Hallo Ulrike,
ich denke ich habe verstanden, was du willst.
Ich würde das immer noch mit einer set analysis expression machen in etwas so:
Bau dir ein straight table mit Dimension Monat (ich nehme an, dass du diese Dimension hast, am besten in einem Master Calendar zusammen mit allen benötigten Datumsfeldern, falls nicht, such mal nach Master Calendar hier im Forum, gibt einige Beispiele).
Als expression dann
=sum({<datum_Eroeffnung= {">=$(=monthstart(addmonths(today(),-12)))"} >} UmsatzFact)
Die Set analysis expression macht folgendes, sie selektiert (nur für diese Berechnung) alle Filialen mit Eröffnung nach dem Datum monthstart(addmonths(today(),-12)) was du von innen nach ausse lesen kannst als nimm heute (29.8.2011), rechne -12 Monate drauf (29.8.2010) and nimm davon den Monatsstart (1.8.2010).
Ob das im Detail wirklich so funktioniert, hängt ein wenig (ne eigentlich hauptsächlich), von deinem Datenmodell ab, ich gehe mal davon aus, wenn du ein Eröffnungsdatum selektierst, selektierst du implizit (weisser Hintergrund in Listboxen) die entsprechende Filiale und alle Umsätze mit.
Hoffe das hilft,
Stefan
hallo Stefan,
juhu, es klappt - vielen herzlichen Dank für deine Hilfe
Freut mich.
Hoffe das mit der set analysis war nicht zu kompliziert für den Anfang, früher oder später (eher früher) sollte frau sich aber eh damit auseinandersetzen.
Mir ist hinterher eingefallen, dass du dasselbe wahrscheinlich auch mit einer einfachen if-Abfrage hättest machen können (ist aber nicht so performant wie mit set analysis):
=sum(if(datum_Eroeffnung >= monthstart(addmonths(today(),-12)),UmsatzFact))
Gruß,
Stefan