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.
Mehrfachbedingung für Summierung
Moderator: Moderatoren
Do-Schleifen mit "normalen" Calc-Möglichkeiten gibt es nicht. Da müsstest Du die Basic-Programmierung bemühen.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.
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.
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.
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.
Hallo Stevens
Ich habs jetzt gerade nochmal getestet , die Formel
=SUMMENPRODUKT(A1:A3="R";B1:B3>0;D1:D3)
funktioniert wie gewünscht.
Gruß
Karo
Bist du sicher das du so meinst wie du das hier geschrieben hast ??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.
Ich habs jetzt gerade nochmal getestet , die Formel
=SUMMENPRODUKT(A1:A3="R";B1:B3>0;D1:D3)
funktioniert wie gewünscht.
Gruß
Karo
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.
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.