Home / EasyLinux / 2013 / 01 / Kalender basteln mit LibreOffice

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

„Klickbunt auf dem Server? Warum nicht, wenn's hilft!"
(220 Punkte bei 8 Stimmen)
KDE 4.10.2, Gnome 3.6 und mehr
(121 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.

Große Klappe

Kalender basteln mit LibreOffice

Ermittlung der Kalenderwoche

Am Montag soll der Kalender ansonsten neben dem Wochentag auch die aktuelle Kalenderwoche anzeigen. Dazu müssen Sie die bisherige Formel in der Zelle B38 abändern:

=WENN(WOCHENTAG(A38)=2;TEXT(A38;"TTT")&"   KW "  &KALENDERWOCHE(A38;1);A38)

Diese Formel prüft an jedem Tag, ob der Wochentag der besagten Zelle ein Montag ist (WOCHENTAG = 2). Ist dies der Fall, weist Calc den Kalendertag dieser Zelle mit dem Format-Code TTT – wie oben beschrieben – als Text aus. Dann folgen der Text " KW " (drei Leerzeichen vor KW, eines danach) sowie die errechnete Kalenderwoche (KALENDERWOCHE(A38;1)). Zusätzlich müssen Sie den Inhalt der Zelle linksbündig ausrichten und als Format-Code wieder TTT angeben. Doch tragen Sie auch diese Formel noch nicht kalenderweit ein, es geht noch weiter mit den Feiertagen.

Feiertage einfügen

Für Feiertage gibt es leider keine eingebaute Funktion, die Calc abfragen könnte. Deshalb müssen Sie selbst eine Feiertagsliste anlegen, solche Listen finden Sie zum Beispiel hier [1]. Diese fügen Sie in einem freien Bereich der Kalendertabelle ein – beispielsweise irgendwo rechts daneben oder in einer eigenen Tabelle. Anschließend vergleichen Sie die Datumsangaben des Kalenders mit dieser Liste und weisen so Feiertage im Kalender aus. Für dieses Beispiel nehmen wir an, dass Sie die gesamte Liste der Feiertage in der Tabelle2 ablegen. Diese benennen Sie über einen Rechtsklick auf den Reiter Tabelle2 und über den Menüpunkt Tabelle umbenennen in Feiertage um. Im Tabellenbereich A2:A100 (Abbildung 5) fügen Sie die Daten der Feiertage ein, in die Zellen B2:B100 kommen die zugehörigen Namen. In der Zeile 1 sehen Sie die Überschriften.

Die Datumswerte in Spalte A tragen Sie mit Hilfe der Funktion DATUM(Jahr; Monat; Tag) ein, etwa =DATUM(Kalender.A36;12;24) für Heiligabend, =OSTERSONNTAG(Kalender.A36)-2 für Karfreitag, =DATUM(Kalender.A36;1;1) für Neujahr und so weiter. Auf diese Weise verwenden Sie die Liste für jedes Kalenderjahr, das die Zelle A36 der Tabelle Kalender anbietet. Letztere müssen Sie dazu, wie eben gezeigt, von Tabelle1 in Kalender umbenennen, damit jeder Benutzer sofort merkt, um welche Tabellenblätter es sich handelt. Zum Schluss weisen Sie der Liste noch das gewünschte Datumsformat zu, in diesem Fall TT.MM.JJ. Damit die Feiertage auch mit ihrem Namen im Kalender erscheinen, tragen Sie in die danebenliegende Spalte B ihre Namen ein.

Zur einfacheren Handhabung markieren Sie nun den Datumsbereich Feiertage.A2:A100 und versehen ihn über Einfügen / Namen / Festlegen mit dem Namen Feiertage. Da sich der gesamte Feiertagsabschnitt aber auf den Bereich Feiertage.A2:B100 erstreckt, markieren Sie auch diesen und nennen ihn Feiertagsbereich.

Die Spalte C der Tabelle Feiertage enthält zusätzlich sämtliche in Spalte A verwendeten Formeln in lesbarer Form. Möglich macht dies die Funktion =FORMEL() – in Zelle C2 heißt sie etwa =FORMEL(A2).

Abbildung 5: Im Internet gibt es zahlreiche Listen, welche die Feiertage nach Bundesländern aufdröseln. Aus ihnen erstellen Sie die Tabelle "Feiertage".

Für die zum Anzeigen des Feiertags verwendete Formel spielt es keine Rolle, ob Sie in die Feiertagsliste zuerst die Feiertagsnamen und dann die Datumswerte oder beides in umgekehrter Reihenfolge eingeben. Sie müssen die Feiertagsliste auch nicht chronologisch sortieren. Die Formel, die diese Bedingungen erfüllt und den Feiertagsnamen liefert, besitzt exemplarisch folgenden Aufbau:

=WENN(ISTNV(VERGLEICH(<Datumskriterium>;
<Datumsbereich des Feiertagsbereich>;0));
"";INDEX(<gesamter Feiertagsbereich>;
VERGLEICH(<Datumskriterium>;
<Datumsbereich des Feiertagsbereich>;0);
<Index der Namensspalte des Feiertagsbereich>))

In der Tabelle Feiertage finden Sie die Feiertage in den Spalten A und B, den gesamten Feiertagsbereich unter Feiertage.A2:B100. Den Datumsbereich des Feiertagsbereich haben Sie bereits mit Feiertage gelabelt (A2:A100). Der Parameter Index der Namensspalte des Feiertagsbereich gibt an, in welcher Spalte des Feiertagsbereichs Sie die Namen der Feiertage finden. Im Beispiel handelt es sich um Spalte B – der Index erhält somit den Wert 2. Gehen Sie weiterhin davon aus, dass Sie das Datumskriterium von Zelle C38 verwenden, lautet die mit Werten gefüllte Formel:

=WENN(ISTNV(VERGLEICH(C38;Feiertage;0));"";
" - "&INDEX(Feiertagsbereich;VERGLEICH(C38;Feiertage;0);2))

Diese prüft zuerst mit Hilfe der Funktion ISTNV(), ob das gesuchte Datum überhaupt in der Feiertagsliste existiert. Die Suche erfolgt über die Funktion VERGLEICH(Suchkriterium; Suchmatrix; Typ), die den Fehlerwert #NV zurück gibt, wenn sie keine Übereinstimmung findet. Dieser Wert lässt die Funktion ISTNV() "wahr" werden, weshalb die umgebende WENN-Abfrage das "Dann-Ergebnis" ausgibt – was hier aus einer leeren Zeichenfolge (zwei Anführungszeichen) besteht.

Bei einer Übereinstimmung erhalten Sie den Feiertagsnamen über die Funktion INDEX(Bezug; Zeile; Spalte; Bereich). Diese liefert den Wert am Schnittpunkt einer Zeile und einer Spalte aus der Feiertagsliste. Aus welcher Zeile der Wert stammt, bestimmt die bereits bekannte Funktion VERGLEICH(), die – im Gegensatz zu anderen Verweisfunktionen – nicht den Wert, sondern die Position der Fundstelle liefert. Die Spaltenposition für die INDEX()-Funktion richtet sich nach dem Aufbau der Feiertagstabelle – in diesem Fall befinden sich die Namen in Spalte 2.

Die komplette verknüpfte Formel in der Zelle D38 sieht am Ende also so aus:

=TEXT(C38;"TTT")&WENN(ISTNV(VERGLEICH(C38;Feiertage;0));
WENN(WOCHENTAG(C38)=2;"   KW "&KALENDERWOCHE(C38;1);"");
" - "&INDEX(Feiertagsbereich;VERGLEICH(C38;Feiertage;0);2))

Geben Sie in die Zelle C38 ein Datum ein, erscheint in der Zelle D38 der Wochentag im Zahlenformat TTT zusammen mit dem Feiertagsnamen oder – wenn es keinen Feiertag gibt und der Wochentag auf einen Montag fällt – zusammen mit der errechneten Kalenderwochennummer. Diese Formel kopieren Sie und fügen sie in allen übrigen Monatstageszellen (etwa Spalte B, D etc.) ein. Eine Ausnahme bildet Zelle F66, die den Wochentag zum 29. Februar anzeigt. Hier stellen Sie vor die eben gezeigte Formel (bei der Sie das = entfernen) noch einen zusätzlichen Teil:

=WENN(MONAT(E65+1)<>MONAT($E$37);"";

Der sorgt dafür, dass der Wochentag auch im Schaltjahr auftaucht.

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

Hits
Wertung: 0 Punkte (1 Stimme)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

EasyLinux 02/2013

Aktuelle Ausgabe kaufen:

Heft bestellen Heft als PDF kaufen

EasyLinux erscheint vierteljährlich und kostet EUR 9,80. Weitere Informationen zum Heft finden Sie auf der EasyLinux-Homepage.

Das EasyLinux-Jahresabo mit Prämie kostet ab EUR 33,30. Details zum EasyLinux-Jahresabo finden Sie im Medialinx-Shop.

Tipp der Woche

Emacs als Psychologe
Emacs als Psychologe
Tim Schürmann, 21.05.2013 11:49, 0 Kommentare

Wer beim Schreiben in Emacs nicht mehr weiter weiß oder schier an einer Programmieraufgabe verzweifelt, der kann den eingebauten Psychologen um Rat fragen.

1966 entwickelte der Infor...

Aktuelle Fragen

Kontakt via QR code hinzufügen
Herman Sproesser, 17.05.2013 17:46, 3 Antworten
Hi hab in der aktuellen ausgabe 06.2013 den artikel über QR Codes gelesen. Ich hab nartürlich...
Dateimanager Dolphin, wo legt er die Datei Kommentare ab?
Uwe Heine, 16.05.2013 15:19, 1 Antworten
Suse Linux 12.1 - KDE 4.7.2 / Dolphin 1.7. Ich habe bei vielen Dateien über Dolphin Kommentare...
wie baut man Kernel Module so, dass sie mit jedem Kernel laden?
GoaSkin , 22.04.2013 10:22, 1 Antworten
Hallo, baut man anhand eines Kernel-Sources Module, nutzt Linux im Normalfall eine strikte V...
Problem beim Installieren von SuSe 12.3
Georg Prokert, 14.04.2013 00:04, 16 Antworten
Hallo, auf meinem neuem Laptop (Acer Aspire V3-771, Intel Core i5-3230 M, Intel HD Graphics 4...
lvm wieder loswerden
Peter Dibbern, 11.04.2013 16:28, 4 Antworten
Ich habe sämtliche alten Kisten ausgeschlachtet und aus der Teilen einen Rechner zusammengeschrau...