Clever-Excel-Forum

Normale Version: Matrix-Formel um Wenn-Abfrage erweitern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo ihr lieben Menschen.

Ich scheitere gerade an der Kombination einer Matrix-Formel mit einer Wenn Abfrage.

Kurz zur Erläuterung der Aufgabe:

Ich habe in Spalte B von Zeile 1 bis "zum bitteren Ende" Eingaben von Nullen und Einsen.
Immer fortlaufend, sozusagen random, mal eine Eins, mal eine Null.
Abhängig von der Zeile will ich die Summe der letzten x Zellen bilden. Ok, will ich nicht, aber dazu später.
In Zelle F1 lege ich fest, welchen Wert x hat. 
Und das funktioniert auch soweit mit einer Matrix Formel. Und zwar lautet diese:
Code:
={SUMME(BEREICH.VERSCHIEBEN($B$1;ZEILE()-($F$1+1);0;$F$1;1))}

Jetzt summiere ich ja und das ist nicht genau das, was ich will.
Ich will, dass in der jeweiligen Zelle als Ergebnis der Höchstwert 1 ist.
Wenn ich jetzt allerdings folgende Formel nutze, dann stimmen die Ergebnisse nicht mehr
Code:
={WENN(SUMME(BEREICH.VERSCHIEBEN($B$1;ZEILE()-($F$1+1);0;$F$1;1))>=1;1;0)}

Momentan mache ich das alles über eine Hilfsspalte in der ich abfrage, was in der Zelle nebenan steht
und dementsprechend gestalte ich dann die Ausgabe. Dafür angenommen steht die 
Matrix Formel in Spalte D und die folgende Formel dann in Spalte C

Code:
=WENNFEHLER(WENN(B2<>"";WENN(D2>=1;1;WENN(D2<>"";0;""));"");"")

Im ganzen sieht das dann so aus

[attachment=19321]

Jetzt hoffe ich, einem von euch kommt der Geistesblitz, wie man die letzte Formel und die erste Formel 
zu einer einzigen Formel machen kann. Ich warte auf diesen Geistesblitz jetzt schon ein paar Tage und
ich kann sagen, wenn man alle D2 in der letzten Formel durch die gesamte erste Formel ersetzt, 
dann wird das nix.

In Hoffnung auf den Geniestreich von einem von euch
LG MacPiet
Hallo,

wenn du anstelle eines Bildes eine Beispieldatei mit händisch eingetragenem Wunschergebnis zeigst, wird vllt. klarer, was du haben willst. Deine Beispiele müssen aber nicht von F1 bis "zum bitteren Ende" gehen; es reichen 10-15 Datensätze.
C4: =--(SUMME(B3:INDEX(B:B;ZEILE()-$F$1))>0) allein

oder, wenn beide Spalten gefüllt sind, den Spieß umdrehend:

C4: =MIN(D4;1)
D4: =SUMME(B3:INDEX(B:B;ZEILE()-$F$1))
Schöne Helfer-Verwirrung.


Code:
=--(SUMME(INDEX(B:B;1/(1/(ZEILE()-$F$1+1))):INDEX(B:B;ZEILE()))>0)
C1: =--(SUMME(INDEX(B:B;1/(1/(ZEILE()-$F$1+1))):INDEX(B:B;ZEILE()))>0)

ist etwas länger als

C1: =--(SUMME(INDEX(B:B;MAX(1;ZEILE()-$F$1+1)):B1)>0)

Am Zahlenbeispiel sehe ich jedoch statt dessen die Anzahl F1 Zeilen VOR der Formel, nicht inkl. der Formel.
Vielen Dank erstmal bis hierhin für eure Hilfe.

Ich habe gerade mit einem Freund telefoniert… der heißt Max… und irgendwie dämmerte es mir dann.
Summe war der falsche Weg, wenn ich einen maximalen Wert von Eins haben will, dann ist…
… badumm… tzzzz… die Lösung MAX. Also habe ich jetzt die Formel abgeändert in MAX
Code:
={MAX(BEREICH.VERSCHIEBEN($B$1;ZEILE()-($F$1+1);0;$F$1;1))}

Und das als Matrix Formel bringt genau die Ergebnisse, die ich brauche.

Und jetzt fehlt nur noch das ausklammern der Fehler, wenn die Fehlermeldung #BEZUG kommt.
Ja, die Fehlermeldung ist normal und richtig, weil der zu wertende Bereich in einer Zeile im unter 
Zeile 1 sein müsste. und den gibt es ja bekanntlich nicht.

In angehängter Datei seht ihr nun, wie es sein muss… nur halt mit dem Bezugsfehler. hat da einer eine Idee 
wie man den los wird? sonst würde ich mir den schnappen und via bedingter Formatierung die Schriftfarbe auf weiß ändern.
denn wenn ich die Formel um WENNFEHLER erweitere, dann stimmen die Werte nicht mehr.

[attachment=19324]

Lieben Dank nochmal und schönen Abend noch
MacPiet
Die Antworten (insb. shift-del) völlig zu ignorieren finde ich keinen feinen Zug.
Die Antwort kenne ich schon: Die Ergebnisse stimmen nicht mehr.
@LCohen ich wollte jetzt nicht unhöflich erscheinen, es war lediglich der Versuch
lösungsorientiert an die Sache ran zu gehen.
ich habe alle eure Werte bzw. Formeln einmal angetestet, aber es gab leider nicht das 
gewünschte Ergebnis. Dennoch habe ich mich bedankt. Und das meine ich ernst, ich bin dankbar,
dass ihr euch einen Kopp gemacht habt was mein Problem betrifft. 
(Mein Problem, darf ich also behalten).

Zur Erläuterung:
Ich bin in Zelle C6. Ich möchte durch Angabe in Feld F1 x (im Beispiel 5) Zellen über C6
anfangen und bis Zelle C5 alle Zellen untersuchen ob irgendwo eine 1 auftaucht,
Ist dem so, dann möchte ich eine 1 ausgeben, ist keine einzige 1 auffindbar, dann eine 0.

Somit war meine Herangehensweise mit Summe total dämlich, da ich ja den Max Wert 
als Equivalent nehmen kann. Somit fällt das Umrechnen auf 1 aus.

Die gegebenen Lösungsansätze sind echt toll, aber sie gehen davon aus, dass keine
weiteren Einträge gemacht werden.
Ich such(t)e aber einen Weg, auf dem ich in Ziele 6 (um Beim Beispiel mit der 5 zu bleiben)
das Ergebnis aus Zeile 1 bis 5 sehe. In Zeile 7 dann das Ergebnis aus Zeile 2 bis 6 … usw.

Also bitte nicht böse sein. Zum einen verstehe ich mehr als gut, dass das schwer ist, 
sich in das Problem anderer rein zu denken,
zum anderen bitte ich um Entschuldigung für die schwammige Ausdrucksweise.
Ich bin halt schon geraume Zeit "gefangen" in der Aufgabenstellung und es fällt schwer,
auszuformulieren, was mittlerweile (von mir) als selbstverständlich angesehen wird.

LG


 
(21.08.2018, 18:45)LCohen schrieb: [ -> ]Am Zahlenbeispiel sehe ich jedoch statt dessen die Anzahl F1 Zeilen VOR der Formel, nicht inkl. der Formel.
Nach der nachgeschobenen Erklärung vom Fragesteller hast du recht.
Code:
=MAX(INDEX(B:B;1/(1/(ZEILE()-$F$1))):INDEX(B:B;ZEILE()-1))