Der Lehrgang war so unnötig wie erwartet, dafür aber viel weniger langweilig als erwartet. Das lag wohl ebenso an unserem Tutor Dr. Bernard d’Souza wie an der größtenteils netten Gesellschaft. Aber das nur am Rande.
Heute wurde ich von meiner Zivildienststelle gezwungen, mich mit Excel zu beschäftigen. Speiseplan mit allen drei Menüs, Vor- und Nachspeise sowie Preisen erstellen, die Darstellung auf verschiedenen Arbeitsblättern so variieren, sodass dort nur bestimmte Angaben zu sehen sind. Eigentlich kein Problem, Excel sollte es doch beherrschen, Zellbezüge zwischen Arbeitsblättern zu setzen und nicht benötige Zeilen und Spalten auszublenden oder zu löschen. Tut es auch, aber nicht die Version 97, die mit einer obskuren Fehlermeldung scheiterte. Für Version 2002 auf einem anderen Rechner jedoch kein Problem.
Nach Angabe eines Anfangsdatums sollte dann automatisch die Kalenderwoche angezeigt werden, sowie eine Wochenübersicht der Form “tt.mm. – tt.mm.jjjj”. Kalenderwoche… klingt einfach. Hilfe aufrufen, und tada!, es gibt eine Funktion KALENDERWOCHE(Datum) in Excel. Freudig eingetragen und… halt… die Funktion existiert nicht. Na gut, wozu gibt es Internet, kurz Googlen und wir finden eine nette (und lange!) Formel zur Berechnung der Kalenderwoche als Alternative. Diese Formel benötigt mehrere Male das Datum des ersten Wochentages, da dieses jedoch später noch per VERKETTEN()-Funktion verwendet werden muss, hat es das Format “Text”, und nicht das benötigte Format “Datum”. Nun könnte man es natürlich mitteles der TEXT(Datum; Format)-Funktion in einen Text umwandeln und so der Kalenderwochen-Funktion das Datum im korrekten Format übergeben, doch leider nennt die Hilfe als Format “tt.mm.jjjj”, was jedoch Ausgaben wie “21.00.2005″ erzeugt. Wir finden erst zu spät durch probieren heraus, dass es “tt.MM.jjjj” heißen muss, sodass unsere Kalenderwoche-Formel nun lautet:
=VERKETTEN(
(
(
DATUM(
TEIL(C4;7;4);
TEIL(C4;4;2);
TEIL(C4;1;2)
)
- WOCHENTAG(
DATUM(
TEIL(C4;7;4);
TEIL(C4;4;2);
TEIL(C4;1;2)
);
3
)
+ 3
- DATUM(
JAHR(
DATUM(
TEIL(C4;7;4);
TEIL(C4;4;2);
TEIL(C4;1;2)
)
- WOCHENTAG(
DATUM(
TEIL(C4;7;4);
TEIL(C4;4;2);
TEIL(C4;1;2)
);
3
)
+3
);
1;
4
)
+WOCHENTAG(
DATUM(
JAHR(
DATUM(
TEIL(C4;7;4);
TEIL(C4;4;2);
TEIL(C4;1;2)
)
- WOCHENTAG(
DATUM(
TEIL(C4;7;4);
TEIL(C4;4;2);
TEIL(C4;1;2)
);
3
)
+ 3
);
1;
4
);
3
)
- 3
)
/ 7
+ 1
);
". KW"
)
Erinnert auf den ersten Blick an LISP, ist so leicht verständlich wie Brainfuck und erinnert mich daran, wieso ich Gnumeric benutze. Habe es gerade ausprobiert, hier funktioniert es mit einem einfachen =concatenate(weeknum(C4);”. KW”)…