Hallo zusammen,
Ich möchte Werte einer Zeile addieren, sofern eine Bedingung erfüllt wird.
Jede Zeile entspricht den Werten einer einzelnen Testperson.
Meine Zeilen sind folgendermaßen aufgebaut.
Eigenschaft A1---Eigenschaft B1---Bedingung1---Eigenschaft B2---Eigenschaft B2--- Bedingung2---Eigenschaft A3---Eigenschaft B3---Bedingung3---….
-------5--------------------10----------------X-----------------4------------------999-----------------Y----------------3---------------------6-----------------X----------...
Ich möchte nun jeweils die Summe aus allen Eigenschafen A bilden, falls Bedingung1/2... jeweils den Wert X besitzt UND Eigenschaft A nicht 999.
„999“ steht dabei für „keine Angabe“ und soll nicht summiert werden.
Weitere Berechnung der Summe aus allen Eigenschaften B, falls Bedingung 1/2...den Wert X besitzt UND Eigenschaften A und B nicht 999.
Wie kann ich diese Addition der Werte unter o.g. Bedingungen vornehmen oder wie kann/muss ich meine Tabelle umstellen, damit das möglich wird?
Mit bisher verwendeter Syntax werden die Werte der Eigenschaften nur summiert, wenn Bedingung1 erfüllt wird. Außerdem wird die Summenbildung abgebrochen, sobald eine Eigenschaft=“999“ Nachfolgende richtige Werte der Zeile werden dann nicht mehr in die Summe einbezogen.
Danke
Summe einer Zeile mit Bedingung
-
- Beiträge: 2
- Registriert: 08.01.2019, 14:00
Re: Summe einer Zeile mit Bedingung
Wenn eine Eigenschaft nicht in die Summe mit einbezogen werden soll kannst du als Work around die 999 als Missing definieren. Dann sollte sie nicht berücksichtigt werden.
Syntax:
mis val A1 B1 B2 A3 B3... (999).
exe.
Oder du codierst die 999 um in 0. Dann wird es den Wert der Summe nicht erhöhen.
Um deine Bedingung mit einzubinden kannst du als Syntax die "do if" Funktion davor setzten.
Syntax:
do if Bedingung1 = x.
compute neuvar = SUM(A1, B1).
end if.
exe.
Falls das mit der Missing Funktion in deinem Fall keine Option ist, kannst du natürlich die "do if" Funktion auch erweitern, indem du die Bedingung mit den 999 hinzufügst:
do if Bedingung1 = x AND A1 ne 999 AND B1 ne 999.
Hoffe das hilft
Syntax:
mis val A1 B1 B2 A3 B3... (999).
exe.
Oder du codierst die 999 um in 0. Dann wird es den Wert der Summe nicht erhöhen.
Um deine Bedingung mit einzubinden kannst du als Syntax die "do if" Funktion davor setzten.
Syntax:
do if Bedingung1 = x.
compute neuvar = SUM(A1, B1).
end if.
exe.
Falls das mit der Missing Funktion in deinem Fall keine Option ist, kannst du natürlich die "do if" Funktion auch erweitern, indem du die Bedingung mit den 999 hinzufügst:
do if Bedingung1 = x AND A1 ne 999 AND B1 ne 999.
Hoffe das hilft