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: 
Not applicable

Formel ausblenden und trotzdem mit weiterrechnen?

Hallo,

ich habe in einer Pivottabelle mehrere Formeln berechnet. Eine dieser Formeln ist nur ein Zwischenschritt, der nicht angezeigt werden soll. Andere Formeln beziehen sich aber auf die nicht anzuzeigende Formel. Ist so etwas möglich?

Wenn ich den Haken bei "Aktivieren" rausnehme, dann können die Folgeformeln nicht mehr auf die deaktivierte Formel zugreifen.

Hintergrund: Die Zwischenformel ist sehr lang. Daher möchte ich Sie in den Folgeformeln nicht jedesmal wieder aufschreiben. Falls später Korrekturen nötig sind, müsste ich in vielen Formeln die Korrektur vornehmen.

Schöne Grüße

Simone

6 Replies
swuehl
MVP
MVP

Hallo Simone,

hast du versucht, die Formel / Spalte durch eine Variable zu ersetzen? Also den Teil, der von den Folgeformeln wieder verwendet wird, als Variable in Variable Overview definieren und von den anderen Formeln aus benutzen.

Not applicable
Author

Hallo swuehl,

ich habe es probiert. Aber es funktioniert gleube ich nicht. Wenn ich es richtig sehe, ist die Variable ein fester Wert. Meine Zwischenformel ist aber abhängig von den Selektionen in Listboxen:

sum({<Kennzahl={'Zugänge'}>} Plan_AJ) - if(GetSelectedCount(GEBIET)>1,' ', IF(GETSelectedCount(GEBIET)=1, sum({<Kennzahl={'Zugänge'}>} Prognosewert),if(GetSelectedCount(REGION)>1,' ', IF(GetSelectedCount(REGION)=1, sum({<Kennzahl={'Zugänge'}>} Prognosewert),sum({<Kennzahl={'Zugänge'}, GST={'999999'}>} Prognosewert)))))

swuehl
MVP
MVP

Hallo Simone,

eine Variable hat nicht einen festen Wert (würde sie sonst Variable heissen )

Sie berücksichtigt auch die aktuellen Seletionen.

Es gibt aber wie für Variablen, die du im Script durch LET oder SET erzeugst, einen wichtigen Unterschied:

Einmal speichert die Variable nur den ausgewerteten Ausdruck, den du bei der Variablendefinition angegeben hast,

(bei Definition im Variablen Overview Editor wird dieser Wert aber immer upgedatet, wenn sich z.B: die Selektion ändert), einmal speichert die Variable nur den Text der Variablendefinition.

Siehe hierzu auch:

http://www.qlikfix.com/2011/06/08/not-all-variables-are-created-equal/

Ich nehme mal an, dass deine Zwischenformel nicht nur von Seletionen abhängt, sondern auch pro Dimensionswert ein unterschiedliches Ergebnis liefert.

Du kannst hier also nicht mit einer Variable arbeiten, die nur den bereits im globalen Kontext ausgewerteten Wert speichert, sondern du willst hier eigentlich den Text der Formel als Shortcut in anderen Formeln wiederverwenden richtig?

Also musst du wahrscheinlich in Variable Overview eine Variable vZwischenFormel anlegen (Definition ohne Gleichheitszeichen):

sum({<Kennzahl={'Zugänge'}>} Plan_AJ) - if(GetSelectedCount(GEBIET)>1,' ', IF(GETSelectedCount(GEBIET)=1, sum({<Kennzahl={'Zugänge'}>} Prognosewert),if(GetSelectedCount(REGION)>1,' ', IF(GetSelectedCount(REGION)=1, sum({<Kennzahl={'Zugänge'}>} Prognosewert),sum({<Kennzahl={'Zugänge'}, GST={'999999'}>} Prognosewert)))))

und dann kannst du in deinen anderen Formeln anstelle des Formeltexts

$(vZwischenFormel)

angeben. Dass sollte es etwas leichter zu lesen und zu pflegen machen.

Gruß,

Stefan

giakoum
Partner - Master II
Partner - Master II

http://www.qlikfix.com/2011/06/08/not-all-variables-are-created-equal/

Thank you for sharing this swuehl. It will prove valuable in many cases!

qlikview2015
Creator II
Creator II

Hallo swuehl,

ich habe mehrere Zeilen die so berechnet werden sollen. Reicht da eine Variable ? Also für jede Zeile neu gerechnet ?

Viele Grüsse

Mike Preuss

marcus_sommer

Hallo Mike,

Die Lösung hier von swuehl ist ein auslagern der Formel in eine Variable und ein Aufruf von $(vZwischenFormel) bewirkt das gleiche, als ob die Formel direkt in die Formelspalte geschrieben wäre und wird so auch über alle Zeilen gleich berechnet.

Vorteil hierbei ist, dass wenn man eine Formel mehrfach benötigt, diese nur einmal zu schreiben und zu pflegen hat. Wenn man dann auch noch mehrere vergleichsweise ähnliche Formeln hat, kann man mit Parametern in der Variable, den Nutzen noch deutlich steigern, siehe mal hier, was gemeint ist: Re: Simplify the code if possible.

Schöne Grüße

Marcus