Clever-Excel-Forum

Normale Version: Zeilenweiser Test auf Bedingungen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen, ich denke (und googele…) seit einigen Tagen auf einem Excel-Problem herum, bezüglich dessen ich mir allmählich eingestehen muss, mit meinem bescheidenen Know-How nicht weiter zu kommen. Ich habe bereits einiges ausprobiert und diesen schönen Ort durchsucht, aber der Durchbruch will nicht gelingen. 

Folgendes Problem: ich habe ein Tabellenblatt mit ca. 500 befüllten Zeilen (Zeilen 4 bis 525). Der Großteil ist als kalendarische Übersicht formatiert und beinhaltet in jeder zweiten Spalte eine gewisse Menge von „x“-Zeichen. Die Spalten dazwischen enthalten ein „Y“. „x“ kann pro Woche und Zeile nur einmal vorkommen (aber unbeschränkt oft pro Spalte), „Y“ theoretisch öfter (ebenfalls unbeschränkt oft pro Spalte). Außer x, Y und leeren Zellen sollte es in dem Bereich keine Inhalte geben. Die Zählung von „x“ und „Y“ in Tages- und Wochenintervallen funktioniert gut. 

Über aufwendige Summenprodukt-Konstruktionen konnte auch die Anzahl der „x“-und-„Y“-Paare für den Regelfall, wenn jede Zeile also höchstens genau ein „x“ und ein „Y“ enthält, ermittelt werden. Außerhalb des Regelfalls wird die Multiplikation (1*1) beim Summenprodukt aber natürlich verheerend. Der Regelfall wird allerdings häufiger verletzt, sodass es zu zwei „Y“ in einer Zeile kommt – hier soll Excel aber weiterhin nur prüfen, ob „x“ und „Y“ gemeinsam in einer Zeile vorkommen und entweder 0 (wenn sie nicht zusammen vorkommen) oder MAXIMAL 1 zählen (wenn sie zusammen vorkommen, unabhängig davon ob „Y“ mehrfach auftaucht), dann die nächste Zeile prüfen, etc und diese Zählung in einem Wert (statt einer Liste) zurückgeben, der Aufschluss über die Zahl der Fälle gibt, wie oft X und Y zusammen in einer Zeile (im Bereich M-Z einer Zeile) vorkommen. 

Im abgebildeten Fall wäre die korrekte Zählung also 11. Und hieran scheitere ich. Versucht habe ich es u.a. hiermit: (Auszug für „x“ in Spalte M), analog natürlich mit O, Q, S, U und W. 
=SUMMENPRODUKT(($M$4:$M$525="x")*($N$4:$N$525="Y"))+WENN(($N$4:$N$525="Y");0;SUMMENPRODUKT(($M$4:$M$525="x")*($P$4:$P$525="Y")))+WENN(ODER($N$4:$N$525="Y";$P$4:$P$525="Y");0;SUMMENPRODUKT(($M$4:$M$525="x")*($R$4:$R$525="Y")))+WENN(ODER($N$4:$N$525="Y";$P$4:$P$525="Y";$R$4:$R$525="Y");0;SUMMENPRODUKT(($M$4:$M$525="x")*($T$4:$T$525="Y")))+WENN(ODER($N$4:$N$525="Y";$P$4:$P$525="Y";$R$4:$R$525="Y";$T$4:$T$525="Y");0;SUMMENPRODUKT(($M$4:$M$525="x") *($V$4:$V$525="Y")))+WENN(ODER($N$4:$N$525="Y";$P$4:$P$525="Y";$R$4:$R$525="Y";$T$4:$T$525="Y";$V$4:$V$525="Y");0;SUMMENPRODUKT(($M$4:$M$525="x")*($X$4:$X$525="Y"))) 

Doch wenn irgendwo in Spalte N oder P ein „Y“ vorkommt, prüft Excel nicht länger die Zeilen, in denen „Y“ erst in Spalte T auftaucht. Ich glaube mein Problem liegt darin Excel zu erklären, dass gerne eine zeilenweise Überprüfung der Bedingung haben möchte. Ich habe es außerdem mit mehreren (Min(1-Konstruktionen probiert, aber auch das hat nicht zum Erfolg geführt). 

Ich hoffe es gibt hier einen Experten, der mir mit diesem Problem helfen kann. Vielen Dank im Voraus!
Hi,

löse das mit einer Hilfsspalte mit Hilfe der Formel

=WENNFEHLER((VERGLEICH("x";M5:X5;0)>0)*(VERGLEICH("Y";M5:X5;0)>0);"")

Ziehe diese über den Bereich und summiere die Hilfsspalte

VG Juvee
Watt machst Du denn hier, Juvee?  19
Herzlich willkommen!
Thumps_up
Hi Ralph,

es juckt halt noch ab und zu in den Fingern Blush 

und dieses Forum ist mMn die beste Alternative zu OL

ich bin ja auch nicht der einzige der ehemaligen Helfer von OL

ich bleibe aber alten Formeln und VBA treu, mit dem neumodischen Krams bin ich ( noch ) auf Kriegsfuss

VG Juvee
Hi,

statt mit VERGLEICH würde ich da aber eher mit ZÄHLENWENN arbeiten, da braucht es kein Wennfehler.


Code:
=--(ZÄHLENWENN(M4:W4;"x")*ZÄHLENWENN(N4:X4;"y")>0)

am Ende eine Summe bilden.

Hiermit:

Code:
=ZÄHLENWENN(M4:W4;"x")*ZÄHLENWENN(N4:X4;"y")>0

am Ende mit
Code:
ZÄHLENWENN(Y4:Y525;WAHR)

die Anzahl ermitteln


Außerdem denke ich, dass das eine schöne Aufgabe für unsere LAMBDA-Spezis wäre.
=SUMME(--NACHZEILE(M4:X20;LAMBDA(a;TEXTKETTE(a)<WECHSELN(TEXTKETTE(a);"xY";"zZ"))))
=SUMME(--NACHZEILE(M4:X20;LAMBDA(a;ISTZAHL(SUCHEN("xY";TEXTKETTE(a))))))


Antikexcel:
=SUMMENPRODUKT(--(
ZÄHLENWENN(BEREICH.VERSCHIEBEN(M3:X3;ZEILE(1:17););"x")*
ZÄHLENWENN(BEREICH.VERSCHIEBEN(M3:X3;ZEILE(1:17););"Y")>0))