Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
GENClik60
Contributor III
Contributor III

Abfrage bis Vormonat, Prev Month

*English below*

Hallo zusammen,

ich brauche mal wieder Hilfe und zwar möchte ich bei meiner Auswertung einen Zeitraum bis zum letzten vollen Monat.

Es werden monatliche Berichte versendet, die aber zum 5. des Monats erst versendet werden mit den Daten aus dem Vormonat. Ich hab versucht eine Variable zu erstellen, hab es aber nicht ganz hinbekommen.

Die Formel von der Auswertung sieht so aus:

 count(DISTINCT {$<

//FAB
EntlassungsgrundKey={'*0709*'},

//Entlassungsdatum
Entlassungsjahr={$(vaktJahr)},

//Haus
Haus={'DEG', 'LAN', 'DGF'}


>} Fallnummer)

Als Variable habe ich folgende Formel:

=month(makedate(max({$<Entlassungsjahr={$(=max(Entlassungsjahr))}>} Entlassungsmonat -1)))

Kann mir bitte einer helfen woran es liegen kann?

 

Hello, everyone,

I need help again and I would like a period of time up to the last full month for my evaluation.

Monthly reports are sent, but they are only sent on the 5th of the month with the data from the previous month. I tried to create a variable but didn't quite get it.

The formula for the evaluation looks like this:

count(DISTINCT {$<

//FAB
EntlassungsgrundKey={'*0709*'},

//Entlassungsdatum
Entlassungsjahr={$(vaktJahr)},

//Haus
Haus={'DEG', 'LAN', 'DGF'}


>} Fallnummer)

I have the following formula as a variable:

=month(makedate(max({$<Entlassungsjahr={$(=max(Entlassungsjahr))}>} Entlassungsmonat -1)))

Can someone please help me what could be wrong?

 

Gruß Genclik

4 Replies
marcus_sommer

Das month(makedate()) Konstrukt ist logisch und syntaktisch nicht korrekt. Das könnte man natürlich abändern, aber wirklich zielführend ist es so nicht, denn es ist komplizierter als notwendig und erfordert u.a. bei Jahreswechsel weitere Maßnahmen.

Insofern schlage ich vor diese Felder + Variablen bereits im Skript zu generieren, z.B. mit:

let vCurrentPeriod@1 = year(today()) * 100 + month(today());
let vCurrentPeriod@2 = year(today()-5) * 100 + month(today()-5);
let vCurrentPeriod@3 = year(today()) * 12 + month(today());

und mit der gleichen Logik auch entsprechende Felder im Master-Kalender zu erzeugen.

Vorteile: Es ist nur noch ein einzelnes Feld für die Bedingung erforderlich, alle Variablen/Felder sind rein numerisch und man vermeidet Formatierungs-Probleme, Formeln in der Set Analysis nicht mehr erforderlich bzw. ihre Komplexität verringert sich, Jahreswechsel können direkt gehändelt werden, die Felder/Variablen stehen überall zur Verfügung, ...

- Marcus

GENClik60
Contributor III
Contributor III
Author

Hallo Marcus,

ich hab leider keinen Zugriff auf den Master-Kalender bzw. das Skript kommt extern.

Ich hab für mich mal so ein Skript geschrieben:

='Vormonat
'
&
if(IsNull(Entlassungsmonat),(Month(Today())-1),
if(Entlassungsmonat= 'Jan', 'Dez $(vaktVorjahr)',
if(Entlassungsmonat= 'Feb', 'Jan',
if(Entlassungsmonat= 'Mrz', 'Feb',
if(Entlassungsmonat= 'Apr', 'Mrz',
if(Entlassungsmonat= 'Mai', 'Apr',
if(Entlassungsmonat= 'Jun', 'Mai',
if(Entlassungsmonat= 'Jul', 'Jun',
if(Entlassungsmonat= 'Aug', 'Jul',
if(Entlassungsmonat= 'Sep', 'Aug',
if(Entlassungsmonat= 'Okt', 'Sep',
if(Entlassungsmonat= 'Nov', 'Okt',
if(Entlassungsmonat= 'Dez', 'Nov',

)))))))))))))

 

Funktioniert im Textbox, aber wenn für Entlassungsmonat nichts ausgewählt wird ändert sich das Format. 

marcus_sommer

Hier fehlt dann die Aggregierung, vielleicht mit max(Entlassungsmonat), damit bei mehreren möglichen Monatswerten nicht NULL erzeugt wird - und mit pick(match()) könnte es übersichtlicher gestaltet werden, wie:

pick(match(max(Entlassungsmonat), ...), ...)

Davon abgesehen, solltet ihr auf den (externen) Skript-Partner zugehen, denn alle erforderlichen Datums-Felder/Variablen direkt vorliegen zu haben, ist eine Basis-Funktionalität, das "bastelt" man nicht wieder und wieder in X Varianten in der Oberfläche zusammen.

- Marcus

GENClik60
Contributor III
Contributor III
Author

Hallo Marcus,

erstmal Danke für die Antwort und sorry für die verspätete Rückmeldung.

Habe das "Problem" jetzt so gelöst, dass ich eine Bedingung bei der Dimension schon eingebaut habe.

=if(Entlassungsmonat<Month(Today()),Entlassungsmonat)

 

//NULL-Werte weglassen

 

Somit hab ich alle Werte bis zum Vormonat.

 

Gruß Genclik