nicht zählen wenn Feiertag auf Wochentag fällt
Moderator: Moderatoren
Hast Du irgendwo eine Liste der Feiertage? Wenn nicht, lege eine an.
Hier ist beschrieben, wie man die ermitteln kann.
Dann kannst Du mit SVERWEIS prüfen, ob das Datum in dieser Liste vorhanden ist, oder nicht. Liefert SVERWEIS einen Fehler, dann wird 1 gesetzt, sonst 0:
=WENN(ISTNV(SVERWEIS(Datumszelle;$B$1:$B$9;1;0));1;0)
Das baust Du in die SUMMENPRODUKT-Formel ein.
Hier ist beschrieben, wie man die ermitteln kann.
Dann kannst Du mit SVERWEIS prüfen, ob das Datum in dieser Liste vorhanden ist, oder nicht. Liefert SVERWEIS einen Fehler, dann wird 1 gesetzt, sonst 0:
=WENN(ISTNV(SVERWEIS(Datumszelle;$B$1:$B$9;1;0));1;0)
Das baust Du in die SUMMENPRODUKT-Formel ein.
keine Ahnung worauf Du Dich hier beziehstin dem von mir verwendeten Kalender befindet sich nur eine Liste der beweglichen Feiertage die sich je nach Jahr autom. ändert. Werden die festen Feiertage aus dieser Formel:
Code:
=DATWERT(VERKETTEN("01.01.";G1))
genommen? Die Zelle "Januar" ist so formatiert.
Ich kann auch die Zellen in der Spalte "C" für keine Einträge benutzen, da hier die =WENN Formeln stehen die auf die bewegl.
und die Erkennung ob es ein Wochentag ist?
steht bereits in der Dir genannten Quelle drin.
Somit:
in der Quelle steht drin wie Du die Feiertage bestimmst, das gibt eine Liste und darauf wendest Du SVERWEIS() an.
Wenn unu zu bestimmen ist ob einer der Werte der Liste gleichzeitig ein Wochentag ist nimmst Du wie in der Quelle angegebenb die Funktion Wochentag:
=WOCHENTAG(<Datum aus Liste>)
ergibt das 1, dann ist der Tag ein Sonntag, sonst ein Wochentag (ggf. ist 7 auch kein Wochentag weil Samstag)
Gruß
Stephan
mit der Formel werden alle"U" gezählt, mit Außnahme der in der Feiertags Liste (A2:A6) stehenden Tage. Ich bekomme die Erweiterung der Formel (nicht zählen wenn Feiertag ein Wochentag), nicht hin.
Die Stellen wo der Ausdruck:
Code: Alles auswählen
ISTNV(SVERWEIS(F9:F31;$A$2:$A$6;1;0)))
Code: Alles auswählen
WENN(WOCHENTAG(F9:F31)<>7)
Code: Alles auswählen
WENN(WOCHENTAG(F9:F31)<>1)
Code: Alles auswählen
WENN(WOCHENTAG(F9:F31)<>7)*WENN(WOCHENTAG(F9:F31)<>1)
Code: Alles auswählen
ISTNV(SVERWEIS(F9:F31;$A$2:$A$6;1;0))
Wenn somit die Summe beider Ausdrücke 0 ist liegt ein Feiertag vor der gleichzeitig Samstag oder Sonntag ist:
Code: Alles auswählen
WENN((ISTNV(SVERWEIS(F9:F31;$A$2:$A$6;1;0)))+(WENN(WOCHENTAG(F9:F31)<>1)*WENN(WOCHENTAG(F9:F31)<>7))=0)))
Code: Alles auswählen
(NICHT(WENN((ISTNV(SVERWEIS(F9:F31;$A$2:$A$6;1;0)))+(WENN(WOCHENTAG(F9:F31)<>1)*WENN(WOCHENTAG(F9:F31)<>7))=0)))
Code: Alles auswählen
{=SUMMENPRODUKT((H9:H31="U")*(NICHT(WENN((ISTNV(SVERWEIS(F9:F31;$A$2:$A$6;1;0)))+(WENN(WOCHENTAG(F9:F31)<>1)*WENN(WOCHENTAG(F9:F31)<>7))=0))))}
Gruß
Stephan
Nein.Es muss in der Formel das "=" mit ";" ersetzt werden Code:
*WENN(WOCHENTAG(F9:F31)<>7));0))))
sonst gibt es eine Fehlermeldung.
Hast Du Dir mal angeschaut was das "=" macht, ich habe Dir die Zusammenhänge nämlich aufgeschrieben damit Du sie verstehst. Und ohne "=" wird es definitiv nicht funktionieren.
Ich habe nochmals überprüft ob meine Formel hier im Forum korrekt ist und das ist sie.
Somit die Formel markieren und kopieren (ohne die "{" und "}") und in Zelle H32 der Beispieldatei die Du online gestellt hast mit Einfügen-Inhalte-unformatierter Text einfügen, ergibt die Fehlermeldung #WERT in der Zelle. Die Zelle markiert lassen und den Funktionsassistenten aufrufen und links unten Haken bei "Matrix" setzen und bestätigen.
Es sollte natürlich klar sein das diese Formel nur in OOo 2.0 oder 2.0.1 funktioniert.
Gruß
Stephan
muß es nicht.Hallo Stephan, tut mir leid.

Falls es das von Galileo ist schau Dir mal Kapitel 5.5 an dort habe ich(*) an einem Beispiel erläutert wie man komplexe Formeln systematisch entwickeln kann.Ein Buch über OO Calc ist bestellt.
Gruß
Stephan
((*) ja, ich nenne mich hier Stephan, ist aber nur ein nickname)
Ich kann leider von hier nicht Deine Tabelle sehen und weiß nicht was falsch ist, im Grundsatz geht das.
Klar sollte aber sein das:
$A$3:$A$10
sich auf dem Blatt befinden wo die Formel steht und nicht etwa auf dem Blatt "Kalender".
In Deiner hier verlinkten Beispieldatei geht beispielweise:
in Zelle H32 Blatt: Tabelle1
wenn Du vorher ein zusätzliches Blatt namens "Kalender" erstellst und die Werte aus den Zellen A1:C6 und F9:F31 in gleiche Positionen des neuen Blattes kopierst. (Die Werte in A2:A6 müssen natürlich auch auf dem ursprünglichen Blatt erhalten bleiben)
Gruß
Stephan
Klar sollte aber sein das:
$A$3:$A$10
sich auf dem Blatt befinden wo die Formel steht und nicht etwa auf dem Blatt "Kalender".
In Deiner hier verlinkten Beispieldatei geht beispielweise:
Code: Alles auswählen
{=SUMMENPRODUKT((H9:H31="U")*(NICHT(WENN((ISTNV(SVERWEIS(Kalender.F9:Kalender.F31;$A$2:$A$6;1;0)))+(WENN(WOCHENTAG(F9:F31)<>1)*WENN(WOCHENTAG(F9:F31)<>7))=0))))}
wenn Du vorher ein zusätzliches Blatt namens "Kalender" erstellst und die Werte aus den Zellen A1:C6 und F9:F31 in gleiche Positionen des neuen Blattes kopierst. (Die Werte in A2:A6 müssen natürlich auch auf dem ursprünglichen Blatt erhalten bleiben)
Gruß
Stephan
In der Beispieltabellehttp://people.freenet.de/Coriolanus/Lutz/Beispiel.sxc funktioniert es.
Ja, nur da verwendest Du eine andere Feiertagstabelle. Ich habe keine Lust zu überlegen welche Urlaubsregelung/Urlaubzählung nun die richtige ist, der Unterschied des Ergebnisses in beiden Tabellen beruht jedoch nicht auf den Formeln, sondern einzig auf der Feiertagstabelle. Ich weiß nicht welche Tabelle sachlich als richtig zu betrachten ist.
Nein, es geht nicht darum das eine Tabelle länger ist, es geht lediglich darum das eine im interessierenden Bereich "Karsamstag" enthält und die andere nicht.
Gruß
Stephan
P.S.
Da Dir das alles scheinbar schwer zu durchschauen ist wäre es nicht sinnvoll eine einfache Hilfstabelle zu machen in der alle Tage des Jahres in einer Spalte stehen und in der Nebenspalte der Dir sagt das dieser Tag gezählt werden soll wenn als Markierung in der Haupttabelle ein "U" steht. Aber nur ein Vorschlag, da mir scheint Dir ist das alles zu unübersichtlich.
Hatte Lenu ohnehin bereits vorgeschlagen (i.d.S.) weil es in OOo < 2.0 garnicht ohne geht, was jedoch auch heißt Du darst das in OOo 2.0 weiterhin so machen.