Mehrfachbedingung für Summierung

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

stevens
Beiträge: 5
Registriert: Sa, 11.02.2006 00:44

Mehrfachbedingung für Summierung

Beitrag von stevens »

Ich schaffe es einfach nicht eine Formel der folgenden Art mittels der Calc-Möglichkeiten auszudrücken:

Do i=1 to 3
if a(i) = "r" & b(i) > 0 then c5=c5+d(i)
end

Kann mir jemand helfen ?
Danke.
Lenu
*******
Beiträge: 1085
Registriert: Sa, 30.10.2004 09:24

Beitrag von Lenu »

stevens hat geschrieben:Ich schaffe es einfach nicht eine Formel der folgenden Art mittels der Calc-Möglichkeiten auszudrücken:

Do i=1 to 3
if a(i) = "r" & b(i) > 0 then c5=c5+d(i)
end

Kann mir jemand helfen ?
Danke.
Do-Schleifen mit "normalen" Calc-Möglichkeiten gibt es nicht. Da müsstest Du die Basic-Programmierung bemühen.

Mehrere Bedingungen gehen jedoch schon. Als "Variablen" müsste man Zelladressen nehmen.

Ich weiss nicht, ob ich das Ganze richtig verstehe, aber ich versuchs mal über eine Matrix:
H1, H2, H3 für die Werte a(1), a(2), a(3),
I1, I2, I3 für die Werte b(1), b(2), b(3),
J1, J2, J3 für die Werte d(1), d(2), d(3)

Mit der Funktion INDEX kann man auf eine Zelle in einer Matrix zugreifen,
indem man die Koordinaten mitgibt.
Für a, b und d wären das Spalte 1, Spalte 2, Spalte 3,
für i wäre das Zeile 1, Zeile 2, Zeile 3

a(1) entspräche dann: =INDEX($H$1:$J$3;1,1),
a(2): =INDEX($H$1:$J$3;2,1)
a(3): =INDEX($H$1:$J$3;3,1)

b(1): =INDEX($H$1:$J$3;1,2)
b(2): =INDEX($H$1:$J$3;2,2)
b(3): =INDEX($H$1:$J$3;3,2)

d(1): =INDEX($H$1:$J$3;1,3)
d(2): =INDEX($H$1:$J$3;2,3)
d(3): =INDEX($H$1:$J$3;3,3)

du musst alle 3 Bedingungen einzeln mit WENN prüfen.
Das "&" bildest Du mit UND ab.

c5=c5+d(i)
lässt sich so nicht realisieren.
Eine Formel lässt sich nicht durch sich selbst ändern.
Mit Zelladressen abgebildet, könnte es z.B. so sein, dass man in D5 schreibt: =C5+irgendwas.

Die ganze Formel in D5 müsste dann so aussehen:
=WENN(UND(INDEX($H$1:$J$3;1;1)="r";INDEX($H$1:$J$3;1;2)>0);C5+INDEX($H$1:$J$3;1;3);WENN(UND(INDEX($H$1:$J$3;2;1)="r";INDEX($H$1:$J$3;2;2)>0);C5+INDEX($H$1:$J$3;2;3);WENN(UND(INDEX($H$1:$J$3;3;1)="r";INDEX($H$1:$J$3;3;2)>0);C5+INDEX($H$1:$J$3;3;3);"was, wenn keine Bedingung zutrifft?")))

Ich bin aber nicht sicher, ob das genau das ist, was Du brauchst,
oder ob die Änderung des Wertes in meinem Beispiel in Zelle D5 "von Schlaufe zu Schlaufe" weitergezogen werden muss.
Das ist mit CALC-Formeln nicht zu machen.
Da müsstest Du die Abteilung "Basic" befragen.
stevens
Beiträge: 5
Registriert: Sa, 11.02.2006 00:44

Beitrag von stevens »

Danke für die Hilfe Lenu, ist ja absolute Spitze wie Du in das Problem eingestiegen bist.

Durch Deine Hinweise mußte ich allerdings feststellen, daß meine Problemdarstellung mit der Iteration nicht so glücklich war.

Ich beschreibe es mal verbal:

- in einer Zelle (c5) soll eine Summe gebildet werden,
- die zu summierenden Werte befinden sich in der Spalte d,
- summiert werden sollen nur Werte einer Zeile, die in der Spalte a den Wert "r" besitzen (Bedingung 1).
Soweit klappt es noch mit der Formel in c5:
Summewenn(a1:a3;"r";d1:d3)


Gleichzeitig gilt für die Summierung aber noch eine weitere Bedingung:
- summiert werden sollen nur Werte einer Zeile, die in der Spalte b eine Zahl enthalten, die > 0 ist (Bedingung 2).
Diese Bedingung für sich würde auch klappen mit der Formel in c5:
Summewenn(b1:b3;">0";d1:d3)

Mir gelingt es nun nicht diese beiden Bedingungen in der Summierung zu verküpfen. Eine Verschachtelung
Summewenn(a1:a3;"r";Summewenn(b1:b3;">0";d1:d3))

wird mit Fehlermeldung abgelehnt.

Da sich die Anzahl der betroffenen Zeilen ständig vergrößern wird, muß ich mit Bereichsgrenzen in den Formeln arbeiten. Sonst müßte ich jedesmal anpassen und die Formeln würden wahrscheinlich auch viel zu groß.

Nochmals vielen Dank für die Mühe.
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Beitrag von Karolus »

Hallo

Nehme die Formel:

=SUMMENPRODUKT(A1:A3="R";B1:B3>0;D1:D3)

Gruß Karo
stevens
Beiträge: 5
Registriert: Sa, 11.02.2006 00:44

Beitrag von stevens »

Danke für den Tip Karo !

Jetzt ist das Problem gelöst, allerdings weiß ich nicht wieso:

- =SUMMENPRODUKT(A1:A3="R";B1:B3>0;D1:D3)
bringt Fehler "Wert".

- das Gleiche in grün
=SUMME((A1:A3="R")*(B1:B3>0)*D1:D3)

funktioniert.

Nochmals: Danke.
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Beitrag von Karolus »

Hallo Stevens
stevens hat geschrieben:Danke für den Tip Karo !

Jetzt ist das Problem gelöst, allerdings weiß ich nicht wieso:

- =SUMMENPRODUKT(A1:A3="R";B1:B3>0;D1:D3)
bringt Fehler "Wert".

- das Gleiche in grün
=SUMME((A1:A3="R")*(B1:B3>0)*D1:D3)

funktioniert.

Nochmals: Danke.
Bist du sicher das du so meinst wie du das hier geschrieben hast ??
Ich habs jetzt gerade nochmal getestet , die Formel

=SUMMENPRODUKT(A1:A3="R";B1:B3>0;D1:D3)
funktioniert wie gewünscht.

Gruß
Karo
stevens
Beiträge: 5
Registriert: Sa, 11.02.2006 00:44

Beitrag von stevens »

Hallo Karo,

ich habe es sicherheitshalber nochmal probiert:

funktioniert tadellos !!!

Kann mich jetzt auch erinnern, daß ich irgendwann zwischendurch erst die Option "reguläre Ausdrücke zulassen" aktiviert habe, eventuell war das die Ursache.
--> ich werte das als Nachweis dafür, daß man das Wochenende wirklich zur (geistigen) Erholung braucht.

Auf jeden Fall hast Du mein Problem gelöst: Danke.
Antworten