Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Vorjahresvergleich

Hello and a happy New Year,

I am a newbie with Qlik Sense and SQL and have have the following question:

  • I created a bar graph and now I was trying to create it for the last year aswell. (monthly presentation).

Which parameters do i need to address, for the correct conclusion?

I am grateful for Feedback so thanks a lot in advance.

_____

Hallo und ein frohes neues Jahr,

ich bin ein Neugling bei Qlik Sense und SQL und habe folgende Frage:

  • Habe ein Balkendiagramm nach Monaten erstellt und will daneben, ein Balkendiagramm nach Monaten für das letzte Jahr erzeugen.

Wie spreche ich die Parameter korrekt an?

Freue mich über Feedback, vielen Dank im Voraus.

1 Solution

Accepted Solutions
marcus_sommer

You could use an expression for your filter-value like:

sum({$<Year={"$(=max(Year))"}>}[Position-Netto]) // max. year to all values respectively to the selection

sum({$<Year={"$(=max(Year)-1)"}>}[Position-Netto]) // the previous year to above

Further I suggest to consider to avoid or at least to reduce the qualifying of tables/fields - the efforts and pain to handle fields like: [AuftragspositionenMAU.Buchungs-Datum.autoCalendar.Year] is much bigger than their potential advantages.

- Marcus

View solution in original post

7 Replies
Not applicable
Author

so far i am using this formula but can I make it more flexibel?

sum({$<[AuftragspositionenMAU.Buchungs-Datum.autoCalendar.Year]={'2015'}>}[Position-Netto])

Instead of '2015' some kind of forumla like

([AuftragspositionenMAU.Buchungs-Datum.autoCalendar.Year]-1)

marcus_sommer

You could use an expression for your filter-value like:

sum({$<Year={"$(=max(Year))"}>}[Position-Netto]) // max. year to all values respectively to the selection

sum({$<Year={"$(=max(Year)-1)"}>}[Position-Netto]) // the previous year to above

Further I suggest to consider to avoid or at least to reduce the qualifying of tables/fields - the efforts and pain to handle fields like: [AuftragspositionenMAU.Buchungs-Datum.autoCalendar.Year] is much bigger than their potential advantages.

- Marcus

Not applicable
Author

Hallo Marcus,

dein Vorschlag ist mir sehr willkommen, ich muss also von dem "Text" auf ein "Value" umschwenken, um die Formel mit -1 zu verwenden?

Wie kann ich den Bezeichner kürzer setzen?

[AuftragspositionenMAU.Buchungs-Datum.autoCalendar.Year] as Buchungsdatum

so in etwa?

Grüße

Sam

Not applicable
Author

Ich habe auch gleich noch eine Frage:

ich wollte es noch etwas flexibler gestalten und habe versucht das Jahr anzupassen

right(GetCurrentSelections([AuftragspositionenMAU.Buchungs-Datum.autoCalendar.Year]),4)-1

damit komme ich zwar auf das Vorjahr anhand der Selektierung, aber wie bekomme ich das andere?

sum({$<Year={"$(=max(Year))"}>}[Position-Netto])

marcus_sommer

Hallo Sam,

wenn möglich, sollte man pure numerische Werte in diesen Set-Matchings haben. Sie sind performanter als Strings, man vermeidet potentielle Problem mit Formaten und man kann Vergleichs-Operatoren wie <= >= einsetzen.

Ich persönlich nutze das Qualifying nahezu nie und benenne den Großteil der Felder gleich beim Einladen so, wie sie auch später in den Reports genutzt werden. Neben dem Umbenennen via AS oder ALIAS kann man auch Rename-Statements verwenden, insbesondere auch per Mapping. Siehe hierzu: How to Rename Fields.

Schöne Grüße

Marcus

Not applicable
Author

Hallo Marcus,

ich habe versucht das Ganze flexibler zu gestalten und das Jahr bekomme ich so hin (bzw. ohne -1):

  • right(GetCurrentSelections([AuftragspositionenMAU.Buchungs-Datum.autoCalendar.Year]),4)-1

aber so klappt es dann nicht mehr (hab versucht es deiner Berechnung oben nach zu stellen):

  • right({$<Year={"$(=getcurrentselections(Year)-1)"}>},4)
  • ({$<Year={"$(=getcurrentselections(Year)-1)"}>})

Eine andere Frage, wenn ich die Felder am Anfang umbenenne und später dann die Daten neu lade bzw. die Datentabelle überschreibe mit neuen Daten, wirkt sich das dann auf die Bezeichnung aus oder entsteht dann ein Konflikt oder erkennt Qlik Sense das? (Die Tabelle bleibt gleich, nur die Daten werden mehr)

Und das letzte, ich habe jetzt versucht das so zu kürzen:

  • [AuftragspositionenMAU.Buchungs-Datum.autoCalendar.Year] as Jahr

aber das will nicht so wirklich funktionieren. Kann ich das überhaupt in der Formel selbst eintragen oder muss ich das, an einer anderen Stelle bei Qlik Sense eingeben? (Anfänger am Werk )

Liebe Grüße

Sam

marcus_sommer

Hallo Sam,

es müsste dann so aussehen:

{$<Year={"$(=right(getcurrentselections(Year),4)-1)"}>}

wobei besser wären:

{$<Year={"$(=getfieldselections(Year)-1)"}>} oder {$<Year={"$(=max(Year)-1)"}>

Wenn ich Dich jetzt richtig verstehe, sind bereits die Feldnamen in der Datenbanktabelle bzw. in den Dateien so qualified: [AuftragspositionenMAU.Buchungs-Datum.autoCalendar.Year] ?

Dann könntest Du sie per AS einfach umbenennen oder auch, wie oben bereits erwähnt, ein Rename-Statement hierfür verwenden. Der Lade-Prozess sollte davon weitgehend unberührt bleiben, eine Ausnahme hiervon wären z.B. inkrementelles Laden - hier müsste man gegebenenfalls die Feldbezeichnungen anpassen oder aber auch das Renaming im Anschluss daran durchführen.

Schöne Grüße

Marcus