knuefi
Goto Top

Excel Bedingte Formatierung wenn Datum xx.xx.xxxx zweite Jahr 31.12 dann

Hallo und guten Abend zusammen,

ich habe eine Frage an die Excel Profis unter euch. Ich benötige für die Bedingte Formation eine Formel die wenn in Zelle ein Datum xx.xx.2017 eingetragen wird, dann soll Zelle mit dem Datum beim erreichen des Datum 31.12.2018 rot werden. Das ist ja eigentlich einfach, dass schwierige ist aber wenn das Datum xx.xx.2018 eingetragen wird soll die Zell beim erreichen 31.12.2019 rot werden.
Egal welches Datum eingetragen wird, immer wenn das Datum 31.12. des folge Jahr erreicht ist soll die Zelle rot werden.
Ich hoffe mir kann jemand weiter helfen

Content-Key: 356169

Url: https://administrator.de/contentid/356169

Printed on: April 19, 2024 at 08:04 o'clock

Mitglied: 134464
Solution 134464 Nov 26, 2017 updated at 19:10:44 (UTC)
Goto Top
Wenn ReferenzDatum in A1 steht und das andere in B1
=WENN(B1>=DATUM(JAHR(A1)+1;12;31);WAHR())
Member: emeriks
emeriks Nov 26, 2017 at 19:17:33 (UTC)
Goto Top
Hi,
Annahme, Zelle sei A1
--> Bedingte Formatierung für Zelle A1 -> Zellwert ist gleich --> =DATUM(JAHR($A$1) + 1;12;31)

E.
Member: Knuefi
Knuefi Nov 26, 2017 updated at 19:25:13 (UTC)
Goto Top
Danke euch beide, das ging ja schnell.

@specht: ein Referenz Datum gibt es nicht, aber für eine andere Tabelle kann ich es gebrauchen. Damit hast du mir schon eine Frage beantwortet die ich noch gar nicht gestellt habe face-smile

@emeriks: Danke, genau was ich gesucht habe. TOP!

Nun noch eine abschließende Frage:

wenn es im gleichen Jahr am 31.12 ablaufen soll wäre das die richtige Formel oder ist das zu einfach gedacht?
=DATUM(JAHR($A$1);12;31)
Member: rubberman
rubberman Nov 26, 2017 updated at 19:29:31 (UTC)
Goto Top
So? (Formel)
=HEUTE()>=DATUM(JAHR(A1)+1;12;31)
Und wenn es im gleichen Jahr sein soll, das +1 weg.

Steffen
Member: emeriks
emeriks Nov 26, 2017 at 19:31:13 (UTC)
Goto Top
Ja, genau.
Member: Knuefi
Knuefi Nov 26, 2017 at 19:40:32 (UTC)
Goto Top
Da ich euch drei Excel Experten gerade hier habe doch noch eine Frage an euch die eigentlich ein anderes Thema wäre.

Ich habe nun von A1 bis G1 Zellen mit Datum die entsprechend unterschiedliche Bedingte Formationen haben und das Datum rot oder grün werden lassen.
Nun meine Bitte bzw. Frage an euch. Welche Formel benötige ich damit wenn Zellen A1 bis G1 das Datum grün ist, dann in Zelle H1 OK, umgekehrt wenn eine oder mehre Zellen (Datum) von A1 bis G1 rot, dann Fehler.
Member: emeriks
emeriks Nov 26, 2017 at 19:57:37 (UTC)
Goto Top
Wenn Datum grün ist ... Hm, ja ja. Oder rot. Sicher.
Member: rubberman
rubberman Nov 26, 2017 at 20:13:01 (UTC)
Goto Top
Hehe face-wink

@Knuefi
Meinst du nicht, dass da wiederum eine Formel sinnvoll wäre, die die Werte (statt die Farben) der Zellen prüft? Eine Verschachtelte WENN Bedingung oder eine einfache WENN Bedingung mit UND Verknüpfungen?

Steffen
Member: Knuefi
Knuefi Nov 26, 2017 updated at 20:19:32 (UTC)
Goto Top
@emeriks: Du hast recht , schlecht beschrieben. Hier ein neuer Versuch.

in den Zellen A1, B1, C1, D1, E1, F1 und G1 ist steht ein Datum das durch eine Bedingte Formation rot werden kann. Nun soll in der Zelle H1 OK stehen wenn kein Datum rot ist, und falls eins oder mehre rot sind soll Fehler in H1 erscheinen.

Noch besser wenn möglich:

wenn A1 oder/und C1oder/und G1 ein rotes Datum erscheint dann H1 Fehler, wenn keins rot dann H1 OK
wenn B1 oder/und D1 oder/und E1 oder/und F1 rotes Datum dann H2 Fehler, wenn keins dann H2 OK
Member: emeriks
emeriks Nov 26, 2017 at 20:16:23 (UTC)
Goto Top
So einfach kommst Du nicht weg!
Falsche Frage kann keine richtige Antwort bringen.
Kann ein Datum rot oder grün sein?
Member: Knuefi
Knuefi Nov 26, 2017 at 20:19:54 (UTC)
Goto Top
@rubberman: das geht leider nicht. Beispiel: B1 steht 02.01.2017 und bis zum 31.12.2018 ist das Datum so weit Okay und bleibt unverändert. Erst ab den 31.12.2018 müsste in H1 Fehler stehen. Wie soll ich das mit einer wenn Formel machen?
Member: emeriks
emeriks Nov 26, 2017 at 20:28:59 (UTC)
Goto Top
@rubberman hat vollkommen Recht. Die Formel aus der bedingten Formatierung kombiniert mit WENN und UND.
Member: rubberman
Solution rubberman Nov 26, 2017 at 20:29:54 (UTC)
Goto Top
Warum soll das nicht gehen? In der bedingten Formatierung geht es doch auch.

=WENN(UND(HEUTE()<DATUM(JAHR(A1)+1;12;31);HEUTE()<DATUM(JAHR(B1)+1;12;31));"OK";"Fehler")  
Erweitern/Anpassen in der UND Verknüpfung musst du selbst.

Steffen
Member: Knuefi
Knuefi Nov 26, 2017 at 20:31:22 (UTC)
Goto Top
wenn ich bei der bedingten Formatierung das Datum nicht rot werden lasse, sondern ich lasse die Zelle mit dem Datum rot füllen, kann ich dann nicht mit den Farbwert 0 arbeiten?
Member: emeriks
Solution emeriks Nov 26, 2017 at 20:32:47 (UTC)
Goto Top
wenn ich bei der bedingten Formatierung das Datum nicht rot werden lasse, sondern ich lasse die Zelle mit dem Datum rot füllen, kann ich dann nicht mit den Farbwert 0 arbeiten?
Warum zum Geier solltest Du das tun? Arbeite mit den gegebenen Werten und fertig aus.
Member: Pedant
Solution Pedant Nov 26, 2017, updated at Nov 27, 2017 at 12:00:13 (UTC)
Goto Top
Hallo Knuefi,

Zitat von @Knuefi:
Egal welches Datum eingetragen wird, immer wenn das Datum 31.12. des folge Jahr erreicht ist soll die Zelle rot werden.
Hast Du die Aufgabe unpräziese vormuliert oder erkenne ich die Schwierigkeit nicht?

Wenn eine Zelle im Folgejahr rot werden soll, dann soll sie doch ein weiteres Jahr später nicht wieder grün werden?
Das bedeutet doch einfach, dass Du die Jahreszahl des eingetragenen Datums mit der aktuellen Jahreszahl vergleichen musst.
Das magische Datum (31.12.) steckt da ja von alleine drin.
=wenn(JAHR(HEUTE())>JAHR(A1);"Fehler";"OK")

Zitat von @Knuefi:
Welche Formel benötige ich damit wenn Zellen A1 bis G1 das Datum grün ist, dann in Zelle H1 OK, umgekehrt wenn eine oder mehre Zellen (Datum) von A1 bis G1 rot, dann Fehler.

Von erster Überlegung abgeleitet, frag nicht nach den Farben, sondern setz eine Formel, die die Inhalte abfragt.
Die Formel für H1 lautet:
=WENN(ODER(JAHR(HEUTE())>JAHR(A1);JAHR(HEUTE())>JAHR(B1);JAHR(HEUTE())>JAHR(C1);JAHR(HEUTE())>JAHR(D1);JAHR(HEUTE())>JAHR(E1);JAHR(HEUTE())>JAHR(F1);JAHR(HEUTE())>JAHR(G1));"Fehler";"OK")  

Nur für die Lesbarkeit:
=WENN
	(
	ODER
		(
		JAHR(HEUTE())>JAHR(A1);
		JAHR(HEUTE())>JAHR(B1);
		JAHR(HEUTE())>JAHR(C1);
		JAHR(HEUTE())>JAHR(D1);
		JAHR(HEUTE())>JAHR(E1);
		JAHR(HEUTE())>JAHR(F1);
		JAHR(HEUTE())>JAHR(G1)
		)
	;"Fehler"  
	;"OK"  
	)

Gruß Frank

EDIT:
Sacht mal, geht's noch?
Ich tippe hier meine Antwort vor mich hin und in der Zwischenzeit erscheinen neue neue Kommentare.
Müsst Ihr morgen nicht arbeiten?
Marsch ins Bett!

EDIT2:
Die Formel hab ich in einem späteren Beitrag korrigiert, mit den richtigen Bedingungen, nochmal gepostet.
Member: Knuefi
Knuefi Nov 26, 2017 at 20:37:35 (UTC)
Goto Top
Das ist die Lösung, ich werde es mit der mit der Wenn und Formel machen. Ich werde sie entsprechend anpassen, so lerne ich die Formel zu verstehen. Dafür ist aber erstmal ein Ansatz nötig und diesen habt ihr mir geben.

DANKE EUCH!!!!
Member: emeriks
emeriks Nov 26, 2017 at 20:44:10 (UTC)
Goto Top
Na dann, grüner Haken, Klappe zu Affe tot.
Member: Pedant
Pedant Nov 26, 2017 at 20:49:09 (UTC)
Goto Top
Hallo Knuefi,
Zitat von @Pedant:
Wenn eine Zelle im Folgejahr rot werden soll, dann soll sie doch ein weiteres Jahr später nicht wieder grün werden?
das hätte ich gerne noch gewusst, bevor emeriks den Affen tötet.

Gruß Frank
Member: rubberman
rubberman Nov 26, 2017 at 21:01:18 (UTC)
Goto Top
Ich will ja Knuefi nicht vorgreifen, aber ...
Wenn du einen Termin verpasst hast, hast du ihn dann plötzlich nicht mehr verpasst wenn noch ein Jahr vergangen ist? Macht keinen Sinn.

Steffen
Member: Pedant
Pedant Nov 26, 2017 at 21:08:10 (UTC)
Goto Top
Hallo rubberman,

hast Du meine Frage falsch verstanden und fragst jetzt mich
oder
hast Du sie nur in eigenen Worten noch einmal gestellt, weil es Dir auch komisch vorkommt?

Gruß Frank
Member: Knuefi
Knuefi Nov 26, 2017 at 21:12:30 (UTC)
Goto Top
Na ja,
wie schon geschrieben: schlecht beschrieben aber doch gelöst, der Affe ist tot face-smile.

gerne lade ich das fertige Ding hoch, das erklärt vieles
Member: rubberman
rubberman Nov 26, 2017 at 21:23:50 (UTC)
Goto Top
Hallo Frank,

letzteres. Ich kann aber auch nirgends einen Hinweis darauf finden, dass das was einmal "rot" ist, irgendwann wieder "grün" sein sollte. Wie gesagt, macht keinen Sinn und ich weiß nicht woher deine Frage kommt.

Steffen
Member: Pedant
Pedant Nov 26, 2017 at 21:25:58 (UTC)
Goto Top
Hallo Knuefi,

...trotzdem muss ich's wissen:
Soll eine rote Zelle ab dem übernächsten Jahr (überraschenderweise) wieder grün werden oder doch für alle Zeiten rot bleiben?

Gruß Frank
Member: Pedant
Pedant Nov 26, 2017 at 21:48:48 (UTC)
Goto Top
Hallo Steffen,

Zitat von @rubberman:
Ich kann aber auch nirgends einen Hinweis darauf finden...

Explizit steht das auch nirgends, implizit habe ich es aus zwei Sachen:

1.
Zitat von @Knuefi:
wenn in Zelle ein Datum xx.xx.2017 eingetragen wird, dann soll Zelle mit dem Datum beim erreichen des Datum 31.12.2018 rot werden. Das ist ja eigentlich einfach, das Schwierige ist aber wenn das Datum xx.xx.2018 eingetragen wird soll die Zell beim erreichen 31.12.2019 rot werden.
Ich habe mal die beiden Stellen unterstrichen:
Wenn das Verpasste einfach ist, aber das andere Verpasste das Schwierige ist, dann muss da doch in der Aufgabe was stecken, was es Schwierig macht.

2.
Die von anderen, geposteten Formeln enthielten alle ein 31 und ein 12 und gerne noch ein Jahr+1.
Ohne die Formeln nachgeturnt zu haben, machte mich das nachdenklich, warum sich für das Datum interessiert wird und nicht einfach nur gefragt wird, ob das fragliche Jahr kleiner ist als das aktuelle.

@Knuefi,
Zitat von @Knuefi:
...gerne lade ich das fertige Ding hoch, das erklärt vieles
Ja, gerne
und ich gehe jetzt davon aus, dass was rot wird soll keine Formel jemals wieder grünen.

Gruß Frank
Member: rubberman
rubberman Nov 26, 2017 at 22:06:40 (UTC)
Goto Top
Immer der 31.12. des Folgejahres des in der Zelle stehenden Datums. Darum "31.12.[Jahr(Zellenwert)+1]".

Steffen
Member: Pedant
Pedant Nov 27, 2017 at 11:57:43 (UTC)
Goto Top
Hallo Steffen,

im Hellen betrachtet, stellt sich die Aufgabe tatsächlich etwas anders dar.
"Sonntag Abend" vs. "Montag Mittag", alias "Müdigkeit und Rotwein" vs. "weder noch"

Du hattest die Aufgabe ja schon mit UND gelöst.
Hier noch meine ODER-Variante in korrigierter Fassung:

Formel für Zelle H1:
=WENN(ODER(HEUTE()>=DATUM(JAHR(A1)+1;12;31);HEUTE()>=DATUM(JAHR(B1)+1;12;31);HEUTE()>=DATUM(JAHR(C1)+1;12;31);HEUTE()>=DATUM(JAHR(D1)+1;12;31);HEUTE()>=DATUM(JAHR(E1)+1;12;31);HEUTE()>=DATUM(JAHR(F1)+1;12;31);HEUTE()>=DATUM(JAHR(G1)+1;12;31));"Fehler";"OK")  

Nur für die Lesbarkeit:
=WENN
	(
	ODER
		(
		HEUTE()>=DATUM(JAHR(A1)+1;12;31);
		HEUTE()>=DATUM(JAHR(B1)+1;12;31);
		HEUTE()>=DATUM(JAHR(C1)+1;12;31);
		HEUTE()>=DATUM(JAHR(D1)+1;12;31);
		HEUTE()>=DATUM(JAHR(E1)+1;12;31);
		HEUTE()>=DATUM(JAHR(F1)+1;12;31);
		HEUTE()>=DATUM(JAHR(G1)+1;12;31)
		)
	;"Fehler"  
	;"OK"  
	)


@Knuefi:
UND: sind ausnahmslos alle "grün" dann OK, sonst Fehler
ODER: ist auch nur eines "rot" dann Fehler, sonst OK
Der Ansatz ist der Gleiche, nur eben negiert.

Gruß Frank
Member: Knuefi
Knuefi Nov 29, 2017 at 16:44:49 (UTC)
Goto Top
Da bin ich noch mal und habe eine Ergänzung bzw. eine Frage

das ist die fertige WENN/ODER Formel

=WENN(ODER(HEUTE()>=DATUM(JAHR(D1);12;31);HEUTE()>=DATUM(JAHR(E1);12;31);HEUTE()>=DATUM(JAHR(F1);12;31));"Fehler";"OK")
Fehler oder OK wird in der Spalte G angezeigt.

nun habe ich versucht ein UND mit zu verschachteln, Hintergrund:

in den Zellen A B steht der Vorname und der Nachnamen, dahinter Zelle C steht bei einigen der Bustabe Z. Der Bustabe Z in Zelle C sagt aus das nur bei diesen Personen die WENN/ODER Formel angewandt werden soll.
Beispiel:
Maxi Müller hat kein Z in Spalte C, ünabhängig vom Ablauf Datum in den Zellen D1, E1 und F1 soll in der Zelle G1 OK erscheinen, sobald der Maxi Müller in der Zelle C ein Z bekommt soll das Ablauf Datum in den Zellen D1, E1 und F1 berücktsichtigt werden.

Hier mein Ansatz der leider nicht funktioniert, was mache ich verkehrt?
=WENN(ODER(HEUTE()>=DATUM(JAHR(D1);12;31);HEUTE()>=DATUM(JAHR(E1);12;31);HEUTE()>=DATUM(JAHR(F1);12;31));UND(C1="Z";"Fehler";"OK"))
Member: rubberman
rubberman Nov 29, 2017 updated at 19:08:08 (UTC)
Goto Top
Probiers mal so:
=WENN(UND(C1<>"Z";ODER(HEUTE()>=DATUM(JAHR(D1);12;31);HEUTE()>=DATUM(JAHR(E1);12;31);HEUTE()>=DATUM(JAHR(F1);12;31)));"Fehler";"OK")  
Steffen
Member: Pedant
Pedant Nov 29, 2017 updated at 19:31:23 (UTC)
Goto Top
Hallo Knuefi,

ohne die Formel auf Funktion zu prüfen:

Das UND (wie auch das ODER) erwarten eine Aneinanderreihung von Werte, die als "wahr" oder falsch" ausgewertet werden können, um diese Aneinanderreihung insgesamt als ein resultierendes "wahr" oder "falsch" zusammenzufassen.
Das trifft zwar auf C1="Z" zu, aber nicht auf die statischen Texte "Fehler" und "OK".

Du kannst entweder die Wenn-Anweisung mit dem UND ergänzen oder eine verschachtelte Wenn-Anweisung erstellen.

=WENN(UND(C1<>"Z"; ODER(HEUTE()>=DATUM(JAHR(D1);12;31);HEUTE()>=DATUM(JAHR(E1);12;31);HEUTE()>=DATUM(JAHR(F1);12;31));"Fehler";"OK")
Hier muss es dann aber für Deinen Zweck negiert sein, also:
C1<>"Z" statt C1="Z"

oder

=WENN(ODER(HEUTE()>=DATUM(JAHR(D1);12;31);HEUTE()>=DATUM(JAHR(E1);12;31);HEUTE()>=DATUM(JAHR(F1);12;31));WENN(C1="Z";"OK";"Fehler");"OK")
Hier ist das Dann-gleich-"Fehler" ersetzt durch eine untergeordnete Wenn-Abfrage:
WENN(C1="Z";"OK";"Fehler")


Grundlagen

UND(wahr; wahr; wahr) => wahr (alle müssen wahr sein)
UND(wahr; falsch; wahr) => falsch

ODER(falsch; falsch; falsch) => falsch
ODER(falsch; falsch; wahr) => wahr (wenigstens einer muss wahr sein)

WENN(wahr; dann diese; sonst das) (einfache Abfrage)
WENN(wahr; WENN(wahr; dann hier; sonst dort); sonst das) (verschachtelte Abfrage)


Trick

=A1&" "&A2 kann aus Anrede und Nachname "Frau Müller" machen indem einfach Zeichenfolgen (Feldwerte und fester Text (eine Leerzeichen)) per & aneinandergereit werden.
Das kann in machen Situationen verschachtelte Wenn-Abfragen ersetzen.
=Wenn(A1="x";"X;"")&Wenn(A2="x";"X;"")&Wenn(A3="x";"X;"")
(Wenn nirgends ="x" zutrifft, dann werden nur 3 x "" miteinander verknüpft und das Ergebnis ist insgeamt "".)

Tief verschachtelte Wenn-Abfragen sind fehleranfällig beim Schreiben und schwer zu lesen, und haben auch Grenzen.
Es waren mal 7 Ebenen, die möglich waren, vielleicht ginge mittlerweise auch mehr.


Den "Trick" habe ich hier nicht als relevante Alternative angefügt, sondern als Anregung Formeln zu verstehen und (aus)zunutzen.

Gruß Frank

EDIT:
Steffen war wieder schneller.
Ich schreib einfach ODER(zu langsam; zu viel; UND(zu langsam; zu viel))
Member: Knuefi
Knuefi Dec 01, 2017 updated at 14:32:26 (UTC)
Goto Top
Durch eure Hilfe habe ich die Excel Tabellen Blätter fertig stellen können, Danke dafür.
Auf aufgrund der aus meiner Sicht zu komplizierten Formel habe ich die Überwachung auf mehre Tabellen Blätter gemacht, Hintergrund dafür ist das es 6 Teams gibt mit unterschiedlichen Überwachungen bzw. Voraussetzungen gibt. Nun frage ich mich ob es nicht möglich ist alles in einer Tabelle zusammen gefügt werden kann.

Ich habe mal zum besseren Verständnis eine Beispiel Mappe mit Kommentaren online gestellt.

Beispiel.xml

wenn ich es richtig Verstanden habe müßte ich wie folgt vorgehen oder?
WENN(wahr; WENN(wahr; dann hier; sonst dort); sonst das) (verschachtelte Abfrage)
=WENN(C2="0";"OK";"";WENN(C2="1";(HEUTE()>=DATUM(JAHR(D2);05;31);HEUTE()>=DATUM(JAHR(E1);12;31) .....
Kann ich einfach alle mögliche Formel so hintereinander schreiben?
Gruß
Frank
Member: rubberman
rubberman Dec 01, 2017 updated at 16:45:15 (UTC)
Goto Top
Klar kannst du auch Bedingungen verschachteln. Das wird natürlich schnell unübersichtlich. Den ganzen Spaß erst mal handschriftlich so zu strukturieren, wie @Pedant es vorgeturnt hat, hilft da in jedem Fall. Brauchst dir nur mal dein Beispiel oben anzusehen. WENN erwartet 3 Argumente. Bei
=WENN(C2="0";"OK";""
bist du bereits bei 3 face-wink

Steffen
Member: Knuefi
Knuefi Dec 01, 2017 updated at 19:04:54 (UTC)
Goto Top
Nun habe ich erstmal das Versucht:

=WENN(ODER(HEUTE()>=DATUM(JAHR(D2);05;31);HEUTE()>=DATUM(JAHR(E2);12;31);HEUTE()>=DATUM(JAHR(F2);12;31));WENN(C2="0";"OK";"Fehler");"OK")

Nun müsste doch unabhängig vom Datum, weil in C2, das OK kommen oder?

Dann noch die Frage zu den Zellen F, H und J, in denen muss ja nur ein Datum stehen um ein OK zu erzeugen. Gibt es eine andre Möglichkeit außer mit =ISTTEXT?

EDIT: =WENN(UND(ISTZAHL(F2);F2>0;F2<=2958465;LINKS(ZELLE("format";F2);1)="D");"OK";"")

Update:
nun habe ich
=WENN(UND(ISTZAHL(F3);F3>0;F3<=2958465;LINKS(ZELLE("format";F3);1)="D");WENN(ODER(HEUTE()>=DATUM(JAHR(D3);12;31);HEUTE()>=DATUM(JAHR(E3);12;31);HEUTE()>=DATUM(JAHR(G3);12;31));WENN(C3="0";"OK";"Fehler");"OK"))

nun kommt wenn kein Datum in Zelle F3 die Meldung Falsch und nicht Fehler, zudem kommt bei Auswahl 0 in Zelle C3 kein OK

Für die Zellen G und I habe ich diese Formel
=WENN(DATEDIF(G5;HEUTE();"m")<=24;"OK";"")
Member: Knuefi
Knuefi Dec 03, 2017 at 12:24:13 (UTC)
Goto Top
Ich hoffe mir kann jemand weiter helfen, ich komme leider nicht weiter. Obwohl, dieses Fehler "
Nun müsste doch unabhängig vom Datum, weil in C2, das OK kommen oder?" konnte ich beheben. Ich habe in der Spalte C habe ich die Zahlen 0 gegen die 1 ausgetauscht und siehe da es geht. Wenn in Zelle C eine 1 steht erscheint unabhängig das OK.
Member: Knuefi
Knuefi Dec 03, 2017 at 15:02:10 (UTC)
Goto Top
Update:
Nun bin ich wieder ein Stück weiter

So wird in Spalte C die 0 berücksichtigt und unabhängig vom Datum erscheint das OK und bei 5 in Spalte C werden die Spalten D, E, G und I werden überwacht, bei nicht Erfüllung eines oder mehrere Wahrheitswert kommt die Meldung Fehler. Bei Erfüllung aller Wahrheitswerte kommt die Meldung OK.

=WENN(ODER(HEUTE()>=DATUM(JAHR(D7);5;31);(HEUTE()>=DATUM(JAHR(E7);5;31));(DATEDIF(G7;HEUTE();"m")>=24);(DATEDIF(I7;HEUTE();"m")>=24));WENN(C7="0";"OK";"Fehler");"OK")

Nun benötige ich die Überwachungen für die Spalten F, H und J, die Voraussetzung für die Meldung OK ist irgendein Datum.
Das ist mein Versuch (erstmal nur Spalte F), leider ohne Erfolg.

=WENN(ODER(HEUTE()>=DATUM(JAHR(D7);5;31);(HEUTE()>=DATUM(JAHR(E7);5;31));(DATEDIF(G7;HEUTE();"m")>=24);(DATEDIF(I7;HEUTE();"m")>=24);(ISTZAHL(F7);F7>0;F7<=2958465;LINKS(ZELLE("format";F7);1)="D"))));WENN(C7="0";"OK";"Fehler");"OK")

Was mache ich da verkehrt?
Member: emeriks
emeriks Dec 03, 2017 at 16:13:00 (UTC)
Goto Top
Mal ein Tip am Rande:
Diese Formeln sind schon sehr lang und komplex. Selbst wenn Du das alles so hinbekommst, wie Du es haben willst, dann musst Du das schon sehr gut dokumentieren, damit Du da später (Monate, Jahre) noch den Durchblick bewahren kannst, falls Du da was anpassen willst/musst.
Um das zu entschärfen, bieten sich u.a. 2 Möglichkeiten
  1. Eigene Funktionen in VBA schreiben. Gut, das muss man auch können, ggf. erstmal lernen. Vorteil hierbei wären u.a., dass man sehr viel flexibler programmieren kann und man direkt im Quelltext kommentieren kann.
  2. Excel-Funktionen mit Zwischenergebnissen. Man kann ausgeblendete Spalten einbauen und in diesen die Zwischenergebnisse "parken". Also die große Formel in viele kleine zerlegen, diese in die versteckten Spalten. Ggf. dann diese Ergebnisse weiterverarbeiten, wieder in kleinen Formeln, wieder in ausgeblendeten Spalten. Und in den "Hauptspalten", die Formeln, welche die Zwischenergebnisse aus dan ausgeblendeten Spalten verarbeiten.
  3. Analog zu 2., bloß nicht mit ausgeblendeten Spalten sondern mit einem extra Blatt, welches man auch verstecken kann.
Methode 3 macht aber nur bei "statischen" Tabellen Sinn, wo keine weiteren Zeilen hinzukommen und man nicht auf das automatische Ausfüllen der neuen Zeilen setzt. Bei Methode und 2 kann man die Formeln mit der Maus auf neue Zeilen kopieren.
Member: Knuefi
Knuefi Dec 03, 2017 at 16:29:28 (UTC)
Goto Top
Danke für dein Tip, leider macht er mich gar nicht Glücklich face-sad, ich bin jetzt schon einige Stunden damit beschäftigt um dann zu erfahren das das nicht der richtige Weg ist.

Wie komplex ist das per VBA?
Member: emeriks
emeriks Dec 03, 2017 updated at 17:35:48 (UTC)
Goto Top
um dann zu erfahren das das nicht der richtige Weg ist.
Das habe ich nicht geschrieben.
Wie komplex ist das per VBA?
Das hängt eigentlich nur davon ab, ob Du schon mal programmiert hast (egal welche Sprache) und/oder wie schnell Du Dir das ggf. aneignen kannst.

Im Kern:
  1. Datei als XLSM speichern.
  2. Alt+F11 --> VBA-Editor öffnen
  3. neues Modul hinzufügen
  4. im Modul eine "Public Function" erstellen
  5. die neue Funktion im Excel benutzen


Aber Deine o.g. Formel ist mir nicht vollkommen klar.

Warum sind die ODER-Bedingungen
(HEUTE()>=DATUM(JAHR(E7);5;31))
und
(DATEDIF(G7;HEUTE();"m")>=24)
jeweils in umschließenden Klammern aber
HEUTE()>=DATUM(JAHR(D7);5;31)
nicht? Hier solltest Du konsequent sein und das einheitlich halten. Wie herum, ist Deine Sache. Ich würde aber die unnötigen Extra-Klammern weglassen.

Diese ODER-Bedingung ist fehlerhaft oder erschließt sich mir nicht:
(ISTZAHL(F7);F7>0;F7<=2958465;LINKS(ZELLE("format";F7);1)="D"))))
  1. Wieder umschließende Klammer.
  2. Was soll das sein? Ein UND, welches Du bloß vergessen hast?

Unabhängig davon:
Das äußere WENN lautet (vereinfacht)
WENN( Oder-Bedingung; Dann A; Sonst B )
- A ist: WENN(C7="0";"OK";"Fehler")
- B ist: "OK"
Wenn also ein C7="0" auch ein "OK" liefern soll, warum legst Du das nicht gleich in die äußere WENN?
Also
WENN( Oder-Bedingung erweitert um " oder C7<>"0" "; Dann "Fehler"; Sonst "OK" )
Member: Biber
Biber Dec 03, 2017 updated at 17:56:12 (UTC)
Goto Top
Moin knuefi,

die Frage ist nicht, wie komplex VBA ist, sondern wie unnötig komlex da das Problem behandelst.

Ich habe jetzt nur die letzten 30cm des Beitrags mitgelesen, demnach ist der Sachverhalt doch so:
  • ENTWEDER einer der Datumswerte in Spalte D und Spalte E muss aus einem Jahr kleiner gleich heute sein. [Anmerkung: Da nicht geprüft wird, ob in D und/oder E Datumswerte oder leere Zellen sind, wird ggf bei dir gegen das Datum 31.05.1900 geprüft und alles passt]
  • ODER einer der Datumwerte in Spalte G und I ist als 24 Monate
  • ODER eines der Felder in F, H oder J ist ein Datumswert
... danach hängt es nur von Spalte C ab, ob FEHLER oder OK.

Spalte C wiederum prüfst du nach eigenen Aussagen auf 0 oder z.B 5.. in der Formel aber auf den String "0"

Dampf doch die Formel etwas zusammen.
  • ENTWEDER das Minimum der Datumswerte in Spalte D und Spalte E muss aus einem Jahr kleiner gle älterich heute sein.
  • ODER das Minimum der Datumwerte in Spalte G und I ist älter als 24 Monate
  • ODER das Maximum der Felder in F, H oder J ist ein Datumswert (meinetwegen mit einem Jahr >=2000
... danach hängt es nur von Spalte C ab, ob FEHLER oder OK.
Deine alte Formel lässt sich mit diesem Minimim/Maximum zusammenfassen als:


=WENN(ODER(HEUTE()>=DATUM(JAHR(MIN(D7;E7));5;31);(DATEDIF(MIN(G7;I7);HEUTE();"m")>=24));WENN(C7="0";"OK";"Fehler");"OK")

Und die Prüfung eines der Felder F7 usw. auf brauchbares datum wäre zB
=WENN(ISTZAHL(F7);JAHR(F7)>2000)

Das würde ein WAHR zurückgeben bei einem Datum >= 01.01.2000 und FALSCh bei leer/Text/gummibärchen.

Und das wäre dann (ohne Gleichheitszeichen) jeweils eine zusätzliche ODER-Bedingung in deiner Formel.

Grüße
Biber
[Edit] @emeriks: Uups, das war über Kreuz. Ich Hoffe, wir erzählen nix Kontroverses.. [/Edit]
Member: Knuefi
Knuefi Dec 03, 2017 updated at 18:21:29 (UTC)
Goto Top
Danke für eure Hilfe, ich versuche gerade deinen Tipp mit den Zwischenergebnis (ausgeblendete Spalten).

Ich habe mal zum besseren Verständnis eine Beispiel Mappe hochgeladen.

Beispiel.xml

In den Kommentaren steht das Ziel bzw. gewünschte Ergebnis der Spalte.

@ Biber: ein zusammenfassen ist hier leider nicht möglich "=WENN(ODER(HEUTE()>=DATUM(JAHR(MIN(D7;E7));5;31)" , in D wird 05;31 (1Halbjahr) und in E 12;31 (2Halbjahr) überwacht.
Member: Biber
Biber Dec 03, 2017 at 18:56:00 (UTC)
Goto Top
Moin knuefi,

tja, ich war von deiner Formel von 16.02h ausgegangen:

=WENN(ODER(HEUTE()>=DATUM(JAHR(D7);5;31);(HEUTE()>=DATUM(JAHR(E7);5;31))...

Grüße
Biber
Member: Knuefi
Knuefi Dec 03, 2017 at 18:59:13 (UTC)
Goto Top
Du hast recht, sorry
Member: Knuefi
Knuefi Dec 03, 2017 at 20:11:47 (UTC)
Goto Top
Nun habe ich eine letzte bitte, dann sollte das Thema vom Tisch sein.

Ich habe nun Hilfsspalten gemacht wo OK oder Fehler erscheint, diese sind E, G, I, K, M, O und Q.

Ich habe 6 Teams die in der Spalte C stehen, C2 = Team 1, C3 = Team 2, C4 = Team 3 ....bis C7 mit Team 6.

Kann mir jemand von Euch eine Formel oder VBA basteln die folgendes kann

Wenn in Spalte C = 6 dann keine weitere Spalten notwendig für OK in Spalte R
Wenn in Spalte C = 1 für OK in Spalte R muss in E oder G und I und M, eins oder mehrere nicht OK dann Fehler
Wenn in Spalte C = 2 für OK in Spalte R muss in E oder G und I und K und M, eins oder mehrere nicht OK dann Fehler
Wenn in Spalte C = 3 für OK in Spalte R muss in E oder G und I und M und O und Q, eins oder mehrere nicht OK dann Fehler
Wenn in Spalte C = 4 für OK in Spalte R muss in E oder G und I und M und O und Q, eins oder mehrere nicht OK dann Fehler
Wenn in Spalte C = 5 für OK in Spalte R muss in E oder G und I und K und M und O und Q, eins oder mehrere nicht OK dann Fehler

Ich hoffe jemand kann mir helfen, mein Ansatz mit einer Formel ist jetzt schon bei der hälfte aller Möglichkeiten ewig lang.
Member: emeriks
emeriks Dec 04, 2017 updated at 07:35:03 (UTC)
Goto Top
Das wird niemand tun können, weil Du offenbar nicht in der Lage bist, Deine Anforderungen klar und logisch auszuformulieren!

Wenn in Spalte C = 1 für OK in Spalte R muss in E oder G und I und M, eins oder mehrere nicht OK dann Fehler
Da ist Chinesisch einfacher!

Ich komme ja noch soweit mit:
Wenn in Spalte C = 1
... für OK in Spalte R muss

aber hier nicht mehr
in E oder G und I und M, eins oder mehrere nicht OK dann Fehler

Grausam!
Member: Knuefi
Knuefi Dec 04, 2017 at 15:15:34 (UTC)
Goto Top
Ich hoffe es wird dadurch deutlicher

unbenannt

Hinweis1: die Teams sind ist variabel. Das heißt, dass das Team 1 von A2 auch in zB. in A4 stehen kann oder mehrfach vorkommt. Genauso verhält sich das mit den anderen Teams.

Beispiel Team1:
Wenn in Spalte A Team1 steht ist für das grüne Feld in Zelle R „Ergebnis“ in E und/oder G, I und M ein OK notwendig, wenn eins oder mehre OK fehlen dann nicht grün sondern rot. Ausgenommen Spalte E und G, da reicht ein OK, deshalb E und/oder G.
Wenn A=1 dann R grün wenn E und/oder G =“OK“ und I=“OK“ und M=“OK“

Beispiel Team2:
Wenn in Spalte A Team2 steht ist für das grüne Feld in Zelle R „Ergebnis“ in E und/oder G, I, K und M ein OK notwendig, wenn eins oder mehre OK fehlen dann nicht grün sondern rot. Ausgenommen Spalte E und G, da reicht ein OK, egal ob E oder G.
Wenn A=2 dann R grün wenn E und/oder G=“OK“ und I=“OK“ und K=“OK“ und M=“OK“

Beispiel Team6:
Hier reicht allein die 6 in Spalte A für eine grüne Zelle R „Ergebnis“
Wenn A=6 dann R grün

Hinweis2:
In Team 3, 4 und 5 ist es gleich wie in dem Beispiel Team1 und Team2, bei E und G reicht ein OK (E und/oder G9
Hinweis 3:
Es muss nicht unbedingt die Zelle R nicht grün werden oder rot sein, ein Erfüllt oder ein nicht Erfüllt oder ähnliches in R reicht aus.
Member: emeriks
emeriks Dec 04, 2017 at 15:31:08 (UTC)
Goto Top
Du bist ech ein harter Fall ....
In Team 3, 4 und 5 ist es gleich wie in dem Beispiel Team1 und Team2
Wie soll das gehen, wo doch die Fälle Team1 und Team2 verschieden sind?
Sollen 3,4,5 nun wie 1 sein oder wie 2 ?
Member: emeriks
Solution emeriks Dec 04, 2017 updated at 15:54:07 (UTC)
Goto Top
In der Annahme, dass 3,4,5 wie 1 sein sollen,
z.B. so

VBA --> ein Modul hinzufügen --> in dieses Modul eine Funktion erstellen
Public Function Test123(A As String, E As String, G As String, I As String, K As String, M As String) As String
  
  Test123 = "Nö"  'Standard: negativ  
  
  Select Case A
    Case 1, 3, 4, 5
      If (E = "OK" Or G = "OK") And _  
          I = "OK" And _  
          M = "OK" Then  
        Test123 = "Prima!"  'positiv  
      End If
    
    Case 2
      If (E = "OK" Or G = "OK") And _  
          I = "OK" And _  
          K = "OK" And _  
          M = "OK" Then  
        Test123 = "Prima!"  'positiv  
      End If

    Case 6
      Test123 = "Prima!"  'positiv  
    
  End Select
  
End Function

In Spalte R, kommt dann
(Beispiel Zeile 4)
=Test123(A4;E4;G4;I4;K4;M4)

Das geht auch anders, u.U. einfacher, aber es ist ja für Dich zum Lernen gedacht.
Member: Knuefi
Knuefi Dec 04, 2017 updated at 16:11:51 (UTC)
Goto Top
Danke für deine Hilfe und Geduld,

nur in den Zellen I und G sind die Teams 1,2,3,4,5 gleich, hier gilt I und/dder G zudem die andren entsprechenden benötigten Zellen

Hier die anderen Beispiele
Beispiel Team3:
Wenn in Spalte A Team3 steht ist für das grüne Feld in Zelle R „Ergebnis“ in E und/oder G, I, M, O und Q ein OK notwendig, wenn eins oder mehre OK fehlen dann nicht grün sondern rot. Ausgenommen Spalte E und G, da reicht ein OK, egal ob E oder G.
Wenn A=3 dann R grün wenn E und/oder G=“OK“ und I=“OK“ und M=“OK“ und O=“OK“ und Q="OK".

Beispiel Team4:
Wenn in Spalte A Team4 steht ist für das grüne Feld in Zelle R „Ergebnis“ in E und/oder G, I, M, O und Q ein OK notwendig, wenn eins oder mehre OK fehlen dann nicht grün sondern rot. Ausgenommen Spalte E und G, da reicht ein OK, egal ob E oder G.
Wenn A=4 dann R grün wenn E und/oder G=“OK“ und I=“OK“ und M=“OK“ und O=“OK“ und Q="OK".

Beispiel Team5:
Wenn in Spalte A Team5 steht ist für das grüne Feld in Zelle R „Ergebnis“ in E und/oder G, I, K, M, O und Q ein OK notwendig, wenn eins oder mehre OK fehlen dann nicht grün sondern rot. Ausgenommen Spalte E und G, da reicht ein OK, egal ob E oder G.
Wenn A=5 dann R grün wenn E und/oder G=“OK“ und I=“OK“ und K="OK" und M=“OK“ und O=“OK“ und Q="OK".

EDITH: das hat sich überschnitten, ich würde erstmal versuchen dein mir zu Verfügung gestellten VBA Modul an zu passen.
Das ist doch wieder Lernstoff, Danke schon mal. Ich werde berichten, und das hoffentlich Positiv face-smile
Member: Knuefi
Knuefi Dec 04, 2017 updated at 20:59:29 (UTC)
Goto Top
Vielen Dank emeriks,

Für dich wahrscheinlich eine Kleinigkeit aber für mich eine total tolle Sache. Ich bin total Begeistert und VBA infiziert, ich werde mich mal in die Materie einlesen. Hast du einen Buch etc. Tipp für mich?

@ an alle die sich hier beteiligt haben: Danke für eure Hilfe und sorry für die schlecht formulierten Fragen, ich gelobe Besserung
Gruß
Frank
Member: emeriks
emeriks Dec 05, 2017 at 06:44:26 (UTC)
Goto Top
Das sind keine speziellen Empfehlungen von mir, nur Treffer.
Buch VBA für Anfänger
aber das hier hört sich gut an
Richtig einsteigen: Excel 2010 VBA-Programmierung - Vom aufgezeichneten Makro bis zu professionellem VBA-Code