Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1096to1100
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Formelproblem

Formelproblem
Markus
Hallo Experten,
ich brauche nochmals Eure Hilfe.
in der folgenden Beispieldatei habe ich mein Problem mit der Formel konkretisiert.
https://www.herber.de/bbs/user/64047.xls
steh mittlerweile komplett auf dem schlauch....
Danke für Eure Hilfe.
Lösung per MATRIX-Funktionen
25.08.2009 20:08:59
NoNet
Hallo Markus,
für die grauen Felder folgende Funktion eingeben und mit Strg+Shift+ENTER bestätigen :
=BEREICH.VERSCHIEBEN(A2;0;N(SUMMENPRODUKT(MAX((A4:X4<>"")*(A7:X7<>"")*SPALTE(A:X)*(REST(SPALTE(A:X);2)=1))))-1)
für die gelben Felder folgende Funktion eingeben und mit Strg+Shift+ENTER bestätigen :

=BEREICH.VERSCHIEBEN(A2;0;N(SUMMENPRODUKT(MAX((A4:X4<>"")*(A7:X7<>"")*SPALTE(A:X) *(REST(SPALTE(A:X);2)=0))))-2)

Gruß, NoNet
AW: Lösung per MATRIX-Funktionen
25.08.2009 23:22:24
Markus
Hallo NoNet,
danke für Deine schnelle Antwort.
Vielleicht hab ich mein Problem nicht genau genug definiert. In den grauen Zellen ist bereits eine Formel und die gelbenZellen sollen Einagbefelder (nicht gesperrt) sein.
Über eine Formel nur in AE2 geht mein Vorhaben wohl nicht oder?
Grüße
Anzeige
DOCH : Funktion in AE2 eingeben !
25.08.2009 23:50:51
NoNet
Hallo Markus,
Du hast meinen Lösungsvorschlag offenbar falsch verstanden und nicht ausprobiert ?
Um den Monat der GRAUEN Zellen zu ermitteln, gibst Du die erste Funktion in AE2 ein,
um den Monat der GELBEN Zellen zu ermitteln, gibst Du die zweite Funktion in AE2 ein !
Probier' es bitte aus, es ist exakt die von Dir gesuchte Lösung !
Gruß, NoNet
AW: Lösung per MATRIX-Funktionen
26.08.2009 00:31:29
Markus
huch! Tatsache.
hatte Dich falsch verstanden und die gelben bzw. grauen mit den Formeln bestückt.
Das ist ja der hit, es klappt einwandfrei. Vielen Dank NoNet -ExcelGott :-).
kannst Du mir noch sagen was Strg+Shift+ENTER bewirkt.
Anzeige
Strg+Shift+ENTER => MATRIX-Funktion
26.08.2009 01:03:02
NoNet
Hallo Markus,
schön, dass es nun doch noch funktioniert.
Die Tastenkombination Strg+Shift+ENTER dient dazu, eine Funktion, die an einer bestimmten Stelle einen einzelnen Wert erwartet, in eine MATRIX-Funktion umzuwandeln, so dass ein Wertebereich angegeben werden kann. Die MATRIX-Funktion durchläuft dann alle Werte in etwa wie in einer "Schleife" in der Programmierung.
Konkret : Folgende Funktion erwartet an der Stelle SpaltenOffset einen einzelnen Wert :
=BEREICH.VERSCHIEBEN(A2;0;SpaltenOffset)
Um nun aber mehrere Spalten zu überprüfen - konkret jede 2. Spalte zwischen A und X (=Spalten A,C,E,G,I,....,X), könnte man das so eingeben :
{=BEREICH.VERSCHIEBEN(A2;0;Spalte(A:X)-1)}
wobei die MATRIX-Klammern {&nbsp} nicht eingegeben werden dürfen, diese werden automatisch angezeigt, wenn die Funktion per Strg+Shift+ENTER als MATRIX-Funktion eingegeben wurde !
Der Teil Spalte(A:X)-1 ergibt dabei die Matrix {0.1.2.3.4.5.......21.22.23}
Diese 24 Zahlen werden dann in der MATRIX-Funktion in Form einer Schleife abgearbeitet.
Da dies der SpaltenOffset von BEREICH.VERSCHIEBEN(...) ist, werden also in der o.g. Funktion die Spalten A,B,C....X überprüft.
Hinweis : Eine Besonderheit - speziell zu BEREICH.VERSCHIEBEN : Damit die Werte tatsächlich als MATRIX interpretiert werden, muss BEREICH.VERSCHIEBEN in die Funktion N(..) (="numerische Werte") bzw. T(...) ="Textwerte") eingebettet werden !! Daher auch dieser Zusatz in meiner o.g Lösung !
Mehr zum Thema "MATRIX-Funktionen" findest Du hier :
http://www.online-excel.de/excel/singsel.php?f=26
Gruß, NoNet
Anzeige
AW: Strg+Shift+ENTER => MATRIX-Funktion
26.08.2009 06:50:51
Markus
Guten Morgen NoNet,
ich mußte bei der Weiterbearbeitung 2 weitere Spalten vor der Anfangszelle einfügen und hab die Formeln wie folgt angepaßt:
=BEREICH.VERSCHIEBEN(C2;0;N(SUMMENPRODUKT(MAX((C4:Z4"")*(C7:Z7"")*SPALTE(C:Z)*(REST(SPALTE(C:Z); 2)=1))))-1)
=BEREICH.VERSCHIEBEN(C2;0;N(SUMMENPRODUKT(MAX((C4:Z4"")*(C7:Z7"")*SPALTE(C:Z)*(REST(SPALTE(C:Z); 2)=0))))-2)
nach erneuter Eingabe stimmt aber das Formelergebnis nicht mehr (ein Monat verrutscht statt Feb jetzt März). Kannst Du mir bitte bei der Lösung nochmal behilflich sein?
Danke
AW: Strg+Shift+ENTER => MATRIX-Funktion
26.08.2009 08:08:16
markus
ich glaube ich habs gefunden:
ich muss noch folgende Werte abändern?
richtig?
=BEREICH.VERSCHIEBEN(C2;0;N(SUMMENPRODUKT(MAX((C4:Z4"")*(C7:Z7"")*SPALTE(C:Z)*(REST(SPALTE(C:Z); 2)=1))))-3)
=BEREICH.VERSCHIEBEN(C2;0;N(SUMMENPRODUKT(MAX((C4:Z4"")*(C7:Z7"")*SPALTE(C:Z)*(REST(SPALTE(C:Z); 2)=0))))-4)
Grüße
Anzeige
Strg+Shift+ENTER => MATRIX-Funktion owt
26.08.2009 18:12:32
Markus
Hallo NoNet,
kannst Du Dir das bitte nochmals anschauen mit den 2 eingefügten Spalten.
ich bekomme nach meinen Änderungen einen #Bezug! fehler wenn nichts eingetragen ist...
Grüße
Ergänzung : Wenn nicht ausgefüllt
26.08.2009 20:23:14
NoNet
Hallo Markus,
grundsätzlich ist Deine Änderung -3 und -4 korrekt.
Allerdings besteht ein Problem, wenn in keinem Monat die Zellen in Zeile 4 UND in Zeile 7 ausgefüllt ist, denn dann ergibt folgender Funktionsteil den Wert 0 :
N(SUMMENPRODUKT(MAX((C4:Z4<>"")*(C7:Z7<>"")*SPALTE(C:Z)*(REST(SPALTE(C:Z); 2)=1))))
Wenn man dies dann in die Funktion BEREICH.VERSCHIEBEN einsetzt, ergibt sich folgende Funktion :
=BEREICH.VERSCHIEBEN(C2;0;0-3)
Das bedeutet : Ermittle den Wert, der Zelle, die 0-3 (also: -3) Spalten VOR der Zelle C2 liegt. Da es bekanntlich keine "negativen Buchstaben" (also: keine Spalte VOR Spalte A) gibt, ergibt das in diesem Fall zu Recht einen #BEZUG! - Fehler.
Das kann man verhindern, indem man eine vorgelagerte WENN-Funktion einbaut, die prüft,ob der o.g. Funktionsteil = 0 ergibt, also ob überhaupt Zellen in Zeile 4 und GLEICHZEITIG in Zeile 7 ausgefüllt sind :
=WENN(N(SUMMENPRODUKT(MAX((C4:Z4<>"")*(C7:Z7<>"")*SPALTE(C:Z)*(REST(SPALTE(C:Z); 2)=1))));BEREICH.VERSCHIEBEN(C2;0;N(SUMMENPRODUKT(MAX((C4:Z4<>"")*(C7:Z7<>"")*SPALTE(C:Z)*(REST(SPALTE(C:Z); 2)=1))))-3);"Grau nicht ausgefüllt")
Und entsprechend :
=WENN(N(SUMMENPRODUKT(MAX((C4:Z4<>"")*(C7:Z7<>"")*SPALTE(C:Z)*(REST(SPALTE(C:Z); 2)=0))));BEREICH.VERSCHIEBEN(C2;0;N(SUMMENPRODUKT(MAX((C4:Z4<>"")*(C7:Z7<>"")*SPALTE(C:Z)*(REST(SPALTE(C:Z); 2)=0))))-4);"GELB nicht ausgefüllt")
Gruß, NoNet
PS : Alle Funktionen natürlich wieder als MATRIX-Funktionen eingeben ;-)
Anzeige
AW: Ergänzung : Wenn nicht ausgefüllt
26.08.2009 20:36:32
Markus
Hallo NoNet,
danke für Deine super ausführlichen Anleitungen und Beschreibungen:
ich habs vorerst so gelöst:
=WENN(ISTFEHLER(BEREICH.VERSCHIEBEN(C4;0;N(SUMMENPRODUKT(MAX((C7:Z7"")*(C34:Z34"")*SPALTE(C:Z) *(REST(SPALTE(C:Z);2)=1))))-4));"";BEREICH.VERSCHIEBEN(C4;0;N(SUMMENPRODUKT(MAX((C7:Z7"") *(C34:Z34"")*SPALTE(C:Z)*(REST(SPALTE(C:Z);2)=1))))-4))
das scheint zu klappen, oder siehst du bei meiner Umsetzung Probleme?
ich werde aber Deinen Lösungsansatz ebenfalls ausprobieren.
Grüße

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige