Qlik Community

Ask a Question

QlikView Administration

Discussion Board for collaboration on QlikView Management.

Announcements
Join us for a live Q&A! September 21, 10 AM ET - Onboarding Fast in Qlik Sense SaaS! REGISTER
cancel
Showing results for 
Search instead for 
Did you mean: 
merry2018
Creator III
Creator III

Aufsummieren der Werte einer Dimension

Hallo Zusammen,

ich bräuchte mal wieder eure Hilfe und zwar geht es um die Aggregierungs Funktion welche ich in einer Tabelle benötige, zu mindestens vermute ich das es mit dieser Funktionieren sollte.

Und zwar habe ich folgende Tabelle:

AuftragAktivitaetPositionProduktionsMengeMengeGutMengeAuschussAusschussAggregiert
11112341060059911
11112352060059901
11112363060059723
11112374060059525
2221244

10

4003505050
2221245

20

4003401060
2221246

30

4003202070

 

Und ich möchte die letzte Spalte (AusschussAggregiert) mit einer Formel berechnen, und zwar soll je Auftrag der Ausschuss aufaddiert werden und auch immer die jeweilige Summe bis zu dieser Position hin angezeigt werden.

Versucht habe ich es mit folgender Formel:

 

sum(aggr(sum(MengeAuschuss),Auftrag))

 

aber damit wird immer nur die letzte Zahl des Auftrages angezeigt, also in unserem Beispiel nur die 5 und 70, bei den anderen Zeilen ist eine '0'.

Oder mit dieser Erweiterung der Formel "+above(sum(MengeAusschuss))" also:

 

 

sum(aggr(sum(MengeAuschuss)+above(sum(MengeAusschuss)),Auftrag))

 

 

 Aber eigentlich sollte es eine Ergänzung geben, bei welcher ich sage nach was ich innerhalb des Auftrages Sortieren will und wie, also z.b. folgende Ergänzung:  (Position,  (NUMERIC, ASCENDING)))  aber damit funktioniert es garnicht und bringt nur Fehler.

 

Wer kann mir sagen was ich übersehen habe oder wo ich etwas vergessen habe oder anders machen sollte??

 

Grüße
Merry

 

Labels (4)
14 Replies
merry2018
Creator III
Creator III
Author

Ich hätte hierzu nochmal eine weitere Frage und zwar funktioniert dies in der Tabelle über eine Formel super, aber ich benötige diese Vorberechnung jetzt auch schon im Script.

Ist dies auch möglich? Ich habe es schon mit Previeous() versucht, um den Vorgänger zu ermitteln, aber damit kann ich die Vorgänger Werte nicht kumulieren oder was kann ich dafür sonst verwenden, um die Formel oben nachzubauen?

 

Denn ich hätte gerne die einzelnen Positionen pro Auftrag in Ihrer Numerischen Reihenfolge aufsummiert in einer weiteren Spalte. Wie z.b. folgend:

TeileNummerPositionMengeKummulierteMenge
Teil001Pos13030
Teil001Pos25080
Teil001Pos320100
Teil002Pos11515
Teil002Pos22237

 

Grüße
Merry

 

 

marcus_sommer
MVP & Luminary
MVP & Luminary

Sowas kann man mit peek() machen:

load *,
   if(TeileNummer = previous(TeileNummer),
   rangesum(Menge, peek('KummulierteMenge')), Menge) as KummulierteMenge
resident Source order by TeileNummer, Position;

- Marcus

View solution in original post

merry2018
Creator III
Creator III
Author

Danke dafür, das sieht eigentlich ganz gut aus nur scheint es noch nicht ganz zu funktionieren.

Denn er hängt sich beim reload des Scripts immer auf.

Ist es korrekt, dass in der Formel der SpaltenName verwendet werden soll, welches die Formel als Ergebnis bringen soll?
also peek('SelbeName') wie as SelbeName?

 

Gruße
Merry

 

 

 

marcus_sommer
MVP & Luminary
MVP & Luminary

Wenn es einen Skript-Fehler gibt, dann ist da syntaktisch irgendwas verkehrt. Das könnte hier am order by liegen, was nur in Verbindung mit Resident Loads erlaubt ist, also nicht bei From. Wenn es das nicht war, dann nimm mal verschiedene Felder, Funktionen usw. aus dem Load rein und raus - dann findet man den Fehler meisten ganz schnell.

Ansonsten war:

… peek('SelbeName')as SelbeName ...

genauso gemeint.

- Marcus

merry2018
Creator III
Creator III
Author

Vielen Dank.

Es lag tatsächlich an falschen Order By felder, aber jetzt funktioniert es.