Wenn Formel (verschachteln)

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

hexal25
***
Beiträge: 54
Registriert: So, 31.05.2009 22:32

Wenn Formel (verschachteln)

Beitrag von hexal25 »

Hallo zusammen,

ich habe mir einen Ferienkalender gebastelt, der sich die Ferientermine per wenn-formel automatisch bei
einem Jahreswechsel aus einer Hilfstabelle holt. Klappt soweit acuh ganz gut, nur füllt er mir leere Felder
mit Nullen oder dem Datum 30.12.99. Ich bekomme das leider irgendwie nicht hin, dass er mir die Felder,
wo nichts drin steht, auch leer lässt.

Wie das aussieht, kann man auf den beiden Bildern sehen, auch habe ich die Formel nochmal lesbar unter
der Tabelle eingefügt
Ich habe Vista und OO 3.1

Die Zellen sind unter Zahl mit Standard formatiert.
Wäre nett wenn mir jemand verrät wo ich wieder was falsch mache :(

Gruß
Hexal25
Dateianhänge
Kalender mit allen Bundesländern
Kalender mit allen Bundesländern
Ferien02.png (45.85 KiB) 2167 mal betrachtet
Kalender nur mit Niedersachsen
Kalender nur mit Niedersachsen
Ferien01.png (73.46 KiB) 2168 mal betrachtet
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Wenn Formel (verschachteln)

Beitrag von balu »

Man hat mich gerufen? :D


Hallo,

nun, bei mir kann ich die Anzeige der Nullen auch einfacher unterdrücken, und zwar wie folgt.

-> Menü
-> Extras
-> Optionen
-> OpenOffice.org Calc
--> Ansicht
Rechte Fensterhälfte
--> Anzeigen
--> Nullwerte das Häkchen raus

Dadurch werden allerdings im gesamten Dokument keine Nullen mehr angezeigt, aber ich glaube im vorliegenden Fall dürfte das wohl in Ordnung sein.

Ich habe das unter WinXP und OOo 2.2.1 sowie 3.1.0 getestet.
Dazu habe ich die Formel nachgebaut, und in der Spalte AB einfach Zahlen eingegeben. Die Formel reagiert so, wie erwartet, nämlich fehlerfrei. Und nachdem ich das anzeigen von Nullwerten ausgeschaltet hatte, wurden auch keine Nullen mehr angezeigt.

Also soviele WENN's habe ich noch nie gebraucht. Aber egal.
Ohne den genaueren Aufbau der Feriendaten (Hilfstabelle) zu kennen, kann ich auch keine alternative anbieten. Was ich aber weiß, ist die Tatsache, dass es keine Ferientermine für alle Bundesländer für die nächsten 10 Jahre gibt. Höchstens für ca. 2 Jahre, aber nicht mehr. Also würde ich dir empfehlen dein Konzept noch mal zu übedenken.


Aber nun probier das mal mit den Nullwerten ausschalten aus. :wink:



Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
hexal25
***
Beiträge: 54
Registriert: So, 31.05.2009 22:32

Re: Wenn Formel (verschachteln)

Beitrag von hexal25 »

Hallo ihr zwei,

da ich erst anfange mich mit calc rumzuschlagen, aber ein großer wenn-fan bin (kann ich gegenüber
meinem chef auf der arbeit das meiste mit abwimmeln :-) ), benutze ich sie schon häufiger.
Sicher habe ich so viele wenns auf einmal auch noch nicht gebraucht. Mit den ganzen anderen verweisen,
vergleichen pp., hab ich noch so meine schwierigkeiten :(

Ich hab die Datei jetzt mal angehängt. Zumindest für mein Bundesland sind die Ferientermine schon noch ein
paar Jahre länger bekannt wie nur die nächsten zwei. Die Grunddatei kennst du ja schon Balu :D

Die beiden Tabellen "Feiertage/Feiertagsliste" wirst du auch erkennen. Auf der Feiertagsliste habe ich auch die Termine
von unserem Volksfest für die nächsten Jahre stehen. Hier hab ich auch so nen paar kleinere Schwierigkeiten die in den
Halbjahreskalender einzubinden. Mit Ostern hab ich es nicht hinbekommen und auch alle anderen Versuche meinerseits, sie
einzubinden, scheiterten kläglich. Grundsätzlich beginnt das Fest immer am 1. Wochenende im Juni (also Samstag - nur fällt
der auch ab und an schon in den Mai)

Mit dem ändern des Zahlenformats, wie von dir vorgeschlagen, klappt das nicht. Dann wirft er mir in den Feldern, wo nur 1 Tag
als Datum steht, eine "Zahl" raus (Pfingsten als Beispiel die 39955 oder 39966).

Gruß
Hexal25
Dateianhänge
Schichtplan_Test.ods
(71.15 KiB) 65-mal heruntergeladen
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: Wenn Formel (verschachteln)

Beitrag von Karolus »

Hallo
-Markiere im Blatt Ferien den Bereich AA3:AH19 , gib jetzt im Adressfenster 'Ferien2008' (ohne Hochkomma) ein, bestätige mit der enter-Taste.
-Wiederhole dies sinngemäss für die weiteren Ferienreferenzbereiche.
-Kopiere in die Zelle A3 folgende Formel:
=INDIREKT("Ferien"&D2)
schliesse die Formel mit strg+shift+enter ab, oder geh in den Formelassistenten und setze die [x]Matrix -option.
-ändere im Bereich der Matrix den Zahlenformatcode auf 'TT.MM.JJ'

Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Wenn Formel (verschachteln)

Beitrag von balu »

Hallo liebe Gemeinde,

@Karo
Geniale Matrix-Formel, werd ich mir merken.


@Sanne
Wenn Du die CALC-Datei hier hochlädst, (und den Titel mit "Hi, Balu" ergänzt :D ) bekommst Du bestimmt ein paar gute Tipps
Danke für die Blumen. Aber dein Vorschlag ist auch nicht von schlechten Eltern, zumal ich es nicht anders gemacht hätte.


@Hexal25
Jetzt hast Du für ein Problem zwei auswahlmöglichkeiten.
Nur für dein anderes Problem mit der Domweih, steh ich vor einem Problem. Ich hätt da wohl eine Formel, die den Start-Termin berechnen könnte, jedoch stimmen deine gegebenen Termine Im Jahr 2015 und 2017 nicht hiermit überein.
Grundsätzlich beginnt das Fest immer am 1. Wochenende im Juni (also Samstag - nur fällt
der auch ab und an schon in den Mai)
Wenn die Termine in der Liste stimmen, dann seh ich momentan keine Lösung für dieses Problem. Also bitte noch mal überprüfen.

Mit den ganzen anderen verweisen,
vergleichen pp., hab ich noch so meine schwierigkeiten
Kopf hoch, das kommt noch. Ich hatte selber da so meine Startschwierigkeiten.

Ist immer wieder schön zu sehen, wenn hier bereit gestellte Beispieldateien nutzbringend weiterverwendet werden :D.



Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
hexal25
***
Beiträge: 54
Registriert: So, 31.05.2009 22:32

Re: Wenn Formel (verschachteln)

Beitrag von hexal25 »

Hallo zusammen,

zunächst einmal danke an sanne und karo für die hilfe. ich hoffe zumindest, nachdem ich mit karos matrix
zunächst so meine liebe mühe hatte (wollte irgendwie bei mir nicht rein :D ), habe ich aber auch dies
hinbekommen und mir werden keine nullen oder sonstwas mehr angezeigt.

die termine für die domweih stimmen leider balu, das ist es ja
(Für die langfristigen Planer

Eigentlich ganz einfach: Die Domweih beginnt am Sonnabend vor dem ersten Montag im Juni.
Es sei denn, an diesem Montag ist Pfingsten, dann verschiebt sich der Start um eine Woche.)

Deswegen kam ich ja damit auch nicht klar. Ist aber auch kein allzu großes Problem wenn das
Anzeigen dieses Festes nicht über eine Formel geht. Müssen die Daten dann jedes Jahr per Hand eingetragen
werden. Dir trotzdem nen danke für deine bemühungen. Aber ne Frage dazu. Könntest du mir sagen wie du den Starttermin
berechnet hast bzw. wolltest?

Gruß
Hexal25
hexal25
***
Beiträge: 54
Registriert: So, 31.05.2009 22:32

Re: Wenn Formel (verschachteln)

Beitrag von hexal25 »

Hallo Balu,

ich habe aber noch einmal eine Frage zu dem o. eingestellten Schichtplan von mir bzgl. der beiden Tabellen
"Feiertage und Feiertagsliste". Ich liege doch richtig, wenn ich sage, dass ich in diesem Fall die Tabelle
Feiertagsliste eigentlich gar nicht benötige, da sie in keinem Zusammenhang mit der Halbjahrestabelle steht
(außer ich würde die Formeln dort umändern).

So lange die Feiertagstermine nicht im Blatt Feiertage eingetragen sind, kann ich dort doch eintragen was ich will,
es wird mir nichts angezeigt.

Gruß

Hexal25
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Wenn Formel (verschachteln)

Beitrag von balu »

Hallo Hexal25,
Ich liege doch richtig, wenn ich sage, dass ich in diesem Fall die Tabelle
Feiertagsliste eigentlich gar nicht benötige, da sie in keinem Zusammenhang mit der Halbjahrestabelle steht ...
Das ist dir überlassen, wie Du es handhabst.


Deine bisherige Formel

Code: Alles auswählen

=WENN(ZÄHLENWENN(Feiertage.$A$2:$A$55;A3)=1;SVERWEIS(A3;Feiertage.$A$2:$B$55;2;0);"")
funktioniert in den Fällen, wo auf ein Tag zwei "Feiertage" zusammenfallen, nicht. Sie macht dann nämlich das, was sie machen soll, sie macht einfach gar nichts.
Und warum?
Ganz einfach!
Weil sie ja überprüfen soll, ob das gesuchte Datum gleich 1 mal (=1) vorhanden ist. Und wenn es 2 mal vorhanden ist, dann ist die Anforderung, um mit der DANN Bedingung weiterzumachen, nicht erfüllt, und es geht mit der SONST Bedingung weiter.

Die einfachste methode um dennoch zu einem halbwegs brauchbaren Ergebnius zu kommen, ist das =1 zu löschen. Denn dann nimmt Calc bei mehreren Übereinstimmungen den ersten Treffer, und gibt diesen zurück.



Jetzt zu deinem Volksfest.
Es sei denn, an diesem Montag ist Pfingsten, dann verschiebt sich der Start um eine Woche.
Mit dieser Aussage läßt sich was anfangen. Sie war das fehlende Glied, um die Kette fertig zu schmieden und zu schlißen :D.
Ich habs auch hinbekommen. Und zwar mit dieser Formel:

Code: Alles auswählen

=WENN(WENN(WOCHENTAG(DATUM(M25;6;1);2)=1;DATUM(M25;6;1);DATUM(M25;6;1)+8-WOCHENTAG(DATUM(M25;6;1);2))=OSTERSONNTAG(M25)+50;OSTERSONNTAG(M25)+50+5;WENN(WOCHENTAG(DATUM(M25;6;1);2)=1;DATUM(M25;6;1);DATUM(M25;6;1)+8-WOCHENTAG(DATUM(M25;6;1);2))-2)
:shock:
Alles klar?
Ist doch einfach, oder?

Na gut. Ich werd sie mal für dich in andere Worte fassen.

Code: Alles auswählen

=WENN(Montag1te=PfingstMontag;PfingstMontag+5;Montag1te-2)
Sie spricht doch jetzt für sich. Ist doch nun wirklich einfach. Denn das ist genau deine Bedingung. Und es ist auch kein Scherz wenn ich sage, das die Formel genau so eingetragen ist.
Na ja, einen kleinen Schönheitsfehler hat sie schon. Denn hinter dieser kurzen Formel verbiergt sich die Mammut-Formel. Und das will ich mal eben erklären.
Ich habe mit "Namen festlegen" gearbeitet (Strg+F3). Und dort steht für Montag1te folgender Formelteil.

Code: Alles auswählen

WENN(WOCHENTAG(DATUM(M25;6;1);2)=1;DATUM(M25;6;1);DATUM(M25;6;1)+8-WOCHENTAG(DATUM(M25;6;1);2))
und für PfingstMontag

Code: Alles auswählen

OSTERSONNTAG(M25)+50
Und was heißt das jetzt im einzeln.
Nun, wenn Du dir den link von Sanne anschaust, dann findest Du bei "Immer am vierten Montag im November..." das Grundprinzip für Montag1te. Jedoch habe ich die Formel so weit geändert, dass jetzt immer der 1. Montag im Monat ausgegeben wird.
Also es wird erst mal nachgeschaut wann der 1. Montag ist und dann überprüft ob das mit Pfingstmontag identisch ist. Wenn ja, dann wird zu Pfingstmontag noch 5 Tage hinzugezählt, und das Datum ausgegeben. Sollte aber diese Überprüfung nicht stimmen, dann wird noch mal nach dem 1. Montag geschaut, und anschließend von diesem Datum 2 Tage abgezogen. Und dadurch ist der Starttermin für das Volksfest erledigt. Und der Endtermin dürfte dann ja wohl auch kein Problem mehr sein :wink:.
Das alles ist im Anhang.



Gruß
balu
Dateianhänge
Schichtplan_Test_balu_FIN.ods
(67.32 KiB) 51-mal heruntergeladen
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Wenn Formel (verschachteln)

Beitrag von balu »

Nachtrag.

Nein, ich hatte nicht darauf gewartet bis Sanne den Link präsentierte. Ich hatte ihn auch schon, jedoch war ich noch mit was anderem beschäftigt :wink:

Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
hexal25
***
Beiträge: 54
Registriert: So, 31.05.2009 22:32

Re: Wenn Formel (verschachteln)

Beitrag von hexal25 »

Hallo Balu,

vielen lieben Dank für deine Mühen.

Klar ist für so nen Anfänger wie mich, wenn man solch eine Formel

Code: Alles auswählen

=WENN(WENN(WOCHENTAG(DATUM(M25;6;1);2)=1;DATUM(M25;6;1);DATUM(M25;6;1)+8-WOCHENTAG(DATUM(M25;6;1);2))=OSTERSONNTAG(M25)+50;OSTERSONNTAG(M25)+50+5;WENN(WOCHENTAG(DATUM(M25;6;1);2)=1;DATUM(M25;6;1);DATUM(M25;6;1)+8-WOCHENTAG(DATUM(M25;6;1);2))-2)
an den Kopp geschmissen bekommt, alles klar :D , wo ist da ein Probleme 8)

Nochmals Danke und noch nen schönen Sonntag, ich werd erst einmal einen trinken gehen auf dem Fest um die
Formel zu verdauen :D

Dir auch nen danke Sanne

Gruß
Hexal25
Antworten