Optimierung eines Dienstplanes mit Stundenberechnung

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

scholdes
**
Beiträge: 41
Registriert: So, 02.05.2010 12:51

Optimierung eines Dienstplanes mit Stundenberechnung

Beitrag von scholdes »

Hallo

Ich hatte bereits einige Fragen zu angehängtem Dienstplan: viewtopic.php?f=2&t=38067.

Jetzt bat mich balu darum, für die Optimierung einzelner Formeln doch ein neues Thema zu erstellen.

Jetzt also meine Frage: Inwiefern können die bestehenden Formeln ggf. verändert / vereinfacht werden, ohne das bestehende Layout zu verändern?

Ich könnte mich auch damit anfreunden, das Layout zu ändern, wenn es das einfacher macht.

Für die Hilfe jetzt schon mal vielen Dank

Gruß
Flo
Dateianhänge
Stundenberechnung.ods
(84.99 KiB) 130-mal heruntergeladen
gripslund
***
Beiträge: 82
Registriert: So, 04.06.2006 09:46

Re: Optimierung eines Dienstplanes mit Stundenberechnung

Beitrag von gripslund »

Hej,

was willst du denn besser machen, bzw. wozu? Zu groß wird die Tabelle ja nicht sein mit ca. 80KiB :?
Wenn alles so funktioniert wie du dir das vorstellst, dann ist es doch ok.

gripslund
scholdes
**
Beiträge: 41
Registriert: So, 02.05.2010 12:51

Re: Optimierung eines Dienstplanes mit Stundenberechnung

Beitrag von scholdes »

Naja, balu meinte nur, dass er einige Formeln anders bzw. einfacher gestaltet hätte...

Mir persönlich reicht die Funktionalität aus, wenn man jedoch durch diverse Tipps dazulernen kann finde ich das ganz gut.

Die komplette Tabelle ist ca. 220 kB groß, also zu groß um sie hier anzuhängen. Deswegen hab ich sie durch löschen einiger Monate verkleinert. Um die Funktion zu verstehen reichen ja ein paar Monate aus.

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

Re: Optimierung eines Dienstplanes mit Stundenberechnung

Beitrag von balu »

Hallo Leute,

@gripslund
Auf die Größe kommt es ja nicht immer an. Vielmehr ist die "Technik" wichtig :wink: .
Und wenn Du dir die Datei von Flo genau anschaust, dann wirst auch Du sehen dass man einiges "einfacher" machen kann. Um es aber einfacher zu machen braucht man schon Hilfe von anderen Leuten, denn von alleine kommt man ja nicht immer sofort darauf wie man es schafft.



@Flo
wenn man jedoch durch diverse Tipps dazulernen kann finde ich das ganz gut.
Und deshalb wolln ma mal auch gleich anfangen.
Eins vorweg.
Auch ich freue mich immer wieder darüber, wenn ich hier und da auch noch was dazulernen kann. Ferner versuche ich hier nur mein persönliches Wissen weiter zu geben. Das heißt jetzt aber nicht, dass nur ich hier was sagen will. Jeder der Tipps und Ideen hat kan ja mitmachen.

Etwas wirklich einfaches zur Einstimmung.

Zeile 11:
In B11 hast Du

Code: Alles auswählen

=SUMME(P2)
Das SUMME ist überflüssig.
Denn wozu willst Du eine Summe von einer einzigen Zahl bilden, auch wenn Du dich auf eine andere Zelle beziehst? Es reicht vollkommen aus, wenn Du ganz easy schreibst.

Der Bereich C11 bis AF11.

Code: Alles auswählen

=SUMME(B11;1)
Okay, das kann man wohl so schreiben, aber einfacher geht es mit

Code: Alles auswählen

=B11+1
Aber warum finde ich deine Idee mit SUMME(B11;1) nicht so gut?
Nun, überleg mal was passiert, wenn Du diese kurze kleine Formel in einer sehr großen und schon fast unübersichtlichen Formel eingebaut hast, und dich in dieser kleinen Formel mit Semikolon (;) und Doppelpunkt (:) vertan hast? Also der berühmte Tippfehler ist aufgetreten.
Das Resultat ist eine Fehlermeldung.
Und unter bestimmten umständen kann es passieren, dass Du nicht sofort siehst, dass die Fehlermeldung auf den Tippfehler beruht. Du suchst also wie ein irrer den Fehler, und findest ihn nicht. Die Fehlersuche wird dadurch stark erschwert.
So ein Tippfehler kann schneller passieren, als es einem lieb ist. Zumal diese beiden Zeichen ja auch direkt nebeneinander liegen.


Zeile 12:
Von B12 bis AF12.

Code: Alles auswählen

=TEXT(SUMME(B11);"ttt")
Auch hier ist SUMME wieder überflüssig.
Und Du ahnst es schon, auch das geht fast so wie schon eben erklärt, mit

Code: Alles auswählen

=TEXT(B11;"ttt")
Je mehr Formeln innerhalb einer Formel sind, um so größer wird die Gefahr das man sich mit den Klammern vertut. Davor ist man aber auch nie gefeilt, das kann immer wieder passieren, auch wenn man schon sehr lange mit einem Tabellenkalkulationsprogramm arbeitet. Nur wenn man die Möglichkeit hat dies von vorneherein zu reduzieren, dann solte man es auch machen.


Zeile 20:
Von B20 bis AF20.

Code: Alles auswählen

=WENN((B19-B17)=0;"";(B19-B17))
Das ist eine einfache Vergleichsoperation und eine Rechenaufgabe.
Wenn Du mal in irgendeine Zelle einfach nur

Code: Alles auswählen

=(B19-B17)=0
eingibst, dann bekommst Du einen Wahrheitswert angezeigt. Der entweder WAHR, oder aber FALSCH lautet. Und wenn Du die Klammern wegnimmst, was passiert dann?

Richdisch!
Der zuvor ausgebene Wahreitswert hat sich nicht geändert.
Und nur der Wahrheitswert entscheidet ja darüber wie es IN der WENN-Formel weitergeht.

Und jetzt teste mal nur die Rechenaufgabe (B19-B17) in irgendeiner Zelle. Einmal mit Klammern, und ohne Klammern. Solltest Du unterschiedliche Ergebnisse bekommen, dann schmeis deinen Rechenknecht ausm Fenster :lol:.

Du siehst, das mit den Klammern ist überflüssig. Und ferner besteht auch hier wieder die Gefahr, das man sich mit den Klammern einfach vertuen kann. Vor diesem Phänomen kann man sich nicht wirklich schützen. Die Klammern haben schon so manchen zur Weissglut gebracht. :twisted:

Also müsste dann jetzt die Formel wie folgt aussehen.

Code: Alles auswählen

=WENN(B19-B17=0;"";B19-B17)

Wie schon gesagt, das war was einfaches zur Einstimmung. Und beim nächsten mal wird es bedeutend komplexer :? .


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
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: Optimierung eines Dienstplanes mit Stundenberechnung

Beitrag von Karolus »

Hallo
Gut dann fang ich mal mit einer furchtbar komplexen Logik an 8)
Was ist wenn 'B19-B17=0' wahr ist, - genau ... B19 entspricht B17
->

Code: Alles auswählen

=WENN(B19=B17;"";B19-B17)
und schon hammer 2 Zeichen gespart.

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)
scholdes
**
Beiträge: 41
Registriert: So, 02.05.2010 12:51

Re: Optimierung eines Dienstplanes mit Stundenberechnung

Beitrag von scholdes »

Aaaaha, wieder was gelernt.

Ich bin gespannt was weiter folgt :)

Das erste Pfuiteufelchen habe ich schon :lol:
in B17 (und allen weiteren Zellen der Zeile) steht

Code: Alles auswählen

=WENN(B18="K";(ZEIT(0;0;0));WENN(B18="U";(ZEIT(0;0;0));WENN(B13="T";(ZEIT(8;34;0));WENN(B13="N";(ZEIT(12;0;0));WENN(B13="S";(ZEIT(20;35;0));WENN(B13="";""))))))
Dann hab ich einfach mal ein paar Klammern entfernt...

Code: Alles auswählen

=WENN(B18="K";ZEIT(0;0;0);WENN(B18="U";ZEIT(0;0;0);WENN(B13="T";ZEIT(8;34;0);WENN(B13="N";ZEIT(12;0;0);WENN(B13="S";ZEIT(20;35;0);WENN(B13="";""))))))
Vielleicht finde ich ja noch ein paar Pfuiteufelchen zum ausmerzen.

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

Re: Optimierung eines Dienstplanes mit Stundenberechnung

Beitrag von balu »

Hallo,

@Karo
Yep! Da hast Du recht :D.


@Flo
Das erste Pfuiteufelchen habe ich schon
Na das is doch schon mal was.

Ich habe da aber einen Fehler in der Datei entdeckt, den ich auch nicht so recht verstehen tuen täte.
In Zelle C14.

Code: Alles auswählen

... WENN(ODER(AI$3=7;F$1=7)...
In F1 steht aber nichts drin! Keine Formel, kein Gar-Nichts!
Hat das einen wichtigen Geheimdienst-Grund?

Ich bin gespannt was weiter folgt
Da lehne ich mich jetzt erst mal in Ruhe zurück :D, und warte auf eine Rückmeldung von dir, wenn Du bei dem folgenden Thema auf Probleme stößt, oder auch nicht.
Thema:
Die Soll-Dienst Zeile mit neuer Formel, und neuer Technik Optimieren.

Ja nu!?
Wat denn nu!?
Balu hilft nicht weiter? :roll:

Oh doch. Aber nur indirekt (vorübergehend). Denn dies Thema ist vom Prinzip her hier schon sehr gut abgehandelt worden. Schau dir diesen Link mal an: Formel für 5 Schichten-Dienstplan gesucht.
Ich wünsche dir schon mal recht viel Spaß dabei :D.

Übrigens, so wie Du bis jetzt den Schichtrhythmus erstellt hast, so hatte ich ihn früher auch gemacht (so ähnlich). Is aber auf die Dauer seeeehr umständlich und unbequem :? .


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
scholdes
**
Beiträge: 41
Registriert: So, 02.05.2010 12:51

Re: Optimierung eines Dienstplanes mit Stundenberechnung

Beitrag von scholdes »

balu hat geschrieben: Ich habe da aber einen Fehler in der Datei entdeckt, den ich auch nicht so recht verstehen tuen täte.
In Zelle C14.

Code: Alles auswählen

... WENN(ODER(AI$3=7;F$1=7)...
In F1 steht aber nichts drin! Keine Formel, kein Gar-Nichts!
Hat das einen wichtigen Geheimdienst-Grund?
Ääähhm, hoppla...
Das erschließt sich mir momentan auch nicht so ganz. Aber diese Hilfszeilen 14-16 sollen bewirken, dass in der Zeile 13 die jeweilige Ausgleichsgruppe die in Zelle J9 eingegeben wird andersfarbig hinterlegt wird.

Ich habe die Formeln nochmal kontrolliert, übernommen hatte ich sie aus einer anderen Tabelle, die war aber vertikal, ich hab sie in mühevoller Kleinarbeit ins horizontale umgebastelt. Das entsprechende Feld ist in der vertikalen Tabelle auch leer...wieso auch immer :?
Ich schau mal ob es irgendwie Fehler produziert, ansonsten kann man es ja lassen.
balu hat geschrieben: Thema:
Die Soll-Dienst Zeile mit neuer Formel, und neuer Technik Optimieren.
Ich wünsche dir schon mal recht viel Spaß dabei :D.
Übrigens, so wie Du bis jetzt den Schichtrhythmus erstellt hast, so hatte ich ihn früher auch gemacht (so ähnlich). Is aber auf die Dauer seeeehr umständlich und unbequem :? .
Ich geh mal stark davon aus, dass man die Formel um einiges kürzen kann. Pro Dienst braucht man denke ich ja keine X Werte die zutreffen müssen. Es müssten ja zwei bis drei Werte reichen.

Ich werd mich bei Gelegenheit dransetzen.

Gruß
Flo
scholdes
**
Beiträge: 41
Registriert: So, 02.05.2010 12:51

Re: Optimierung eines Dienstplanes mit Stundenberechnung

Beitrag von scholdes »

So, die Solldienst-Zeile habe ich :)
Alte Version (hier Zelle E13)

Code: Alles auswählen

=WENN(UND(C13="N";E12="So");"S";WENN(E12="So";"";WENN(UND(C13="N";E12="Sa");"S";WENN(E12="Sa";"";WENN(UND(B13="T";B12="Fr");"N";WENN(D13="T";"N";WENN(D13="N";"";WENN(D13="";"T";""))))))))
Neue Version

Code: Alles auswählen

=WENN(UND(C13="N";ODER(E12="Sa";E12="So"));"S";WENN(ODER(E12="Sa";E12="So");"";WENN(UND(B13="T";B12="Fr");"N";WENN(D13="T";"N";WENN(D13="N";"";WENN(D13="";"T";""))))))
Gruß
Flo
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: Optimierung eines Dienstplanes mit Stundenberechnung

Beitrag von Karolus »

Hallo
Das ODER(E12="Sa";E12="So") kannst du gefahrlos durch WOCHENTAG(E11;2)>5 ersetzen, als Nebeneffekt wird dadurch die Formelzeile 12 eigentlich überflüssig.
Sofern du dich entschliesssen kannst den leeren Eintrag "" zumindest gegen ein Leerzeichen " " einzutauschen, könntest du das hintere Ende der Formel WENN(D13="T";"N";WENN(D13="N";"";WENN(D13="";"T";""))) gegen ein SVERWEIS(D13;schichtrythmus;2;0)
'schichtrythmus' wäre in dem Fall ein kleiner Hilfsbereich 2 Spalten mal 3 Zeilen gross mit dem Inhalt:
T | N
N | leerzeichen
leerzeichen | T

[edit] Nee, der Vorschlag mit dem Leerzeichen ist suboptimal - menschliche Betrachter haben Probleme damit leere Zellen und Leerzeichenenthaltende Zellen zu unterscheiden :? [/edit]

Gruß Karo
Zuletzt geändert von Karolus am Mi, 05.05.2010 21:17, insgesamt 1-mal geändert.
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: Optimierung eines Dienstplanes mit Stundenberechnung

Beitrag von balu »

Hallo Flo,

was für Formeln hast Du denn jetzt in B13 bis D13, wenn deine geänderte Formel in E13 ist?

Ich glaube ich sollte jetzt wohl doch mal grob erklären, wie die Soll-Dienst Zeile mit Formel nach meinen Vorstellungen aussehen sollte.

Also:
In B13 kommt folgende Formel rein,

Code: Alles auswählen

=WENN($J$7>3;"";SVERWEIS(REST(B11;21);Schicht;$J$7+1;0))
und wird dann ganz einfach bis AF13 rübergezogen.


Jetzt eine kurze Erklärung der Formel.

Code: Alles auswählen

$J$7>3;"";
Ist ja eigentlich ganz easy zu verstehen. Wenn also jemand eine Dienstgruppe eingibt die es nicht gibt, also beispielsweise 4, dann wird nichts gemacht.

Code: Alles auswählen

SVERWEIS(REST(B11;21);Schicht;$J$7+1;0)
Das ist die Magische Formel die automatisch die Schichten (T, N, S) einträgt, und das abhängig von der Dienstgruppe.
Die 21 in REST zeigt den Schichtrhythmus an. Denn so lang ist dieser nach meiner Überprüfung, der mir zur Verfügung stehenden Daten.
Schicht ist eine Matrix die den Schichtrhythmus für alle 3 Dienstgruppen umfasst. Und diese Matrix besteht aus 4-Spalten, und 21 Zeilen, die ich in einem zusätzlichem Tabellenblatt untergebracht habe.
$J$7+1 Damit wird der Spaltenindex für die Schicht-Matrix ermittelt. Denn die Dienstgruppen fangen nicht in der ersten, sondern in der zweiten Spalte der Matrix an.

Durch diese Formel entfallen dann andere Hilfszellen, die unsichtbar und/oder ausgeblendet sind. Das habe ich jetzt allerdings noch nicht in der angehängten Datei gemacht.

Um die genaue Funktion der SVERWEIS-Formel mit der dazugehörigen Schicht-Matrix besser zu verstehen, empfehle ich den von mir weiter oben verlinkten Beitrag durchzulesen, und durchzuarbeiten.



Gruß
balu
Dateianhänge
Stundenberechnung_balu.ods
(77.42 KiB) 88-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
scholdes
**
Beiträge: 41
Registriert: So, 02.05.2010 12:51

Re: Optimierung eines Dienstplanes mit Stundenberechnung

Beitrag von scholdes »

balu hat geschrieben:Hallo Flo,

was für Formeln hast Du denn jetzt in B13 bis D13, wenn deine geänderte Formel in E13 ist?
Bis auf B13 sehen die gleich aus, verweisen aber teilweise auf "Hilfszellen" ausserhalb der eigentlichen "sichtbaren" Tabelle.
balu hat geschrieben:Denn so lang ist dieser nach meiner Überprüfung, der mir zur Verfügung stehenden Daten.
Das ist richtig. Der Schichtrhythmus beginnt alle drei Wochen wieder Montags Abends mit einem Nachtdienst.

Mein Problem ist aber, dass ich mit dem Verweis auf den anderen Thread nix anfangen kann...
Wenn ich alles so mach wie beschrieben, kommt trotzdem kein Kalender mit Schichtplan raus. Die Zellen bleiben leer.
Und die zip-Datei kann ich zwar öffnen, da ist aber alles drin, nur keine ods :shock:

Ich werde weiterbasteln :-P
Gruß
Flo
Zuletzt geändert von scholdes am Do, 06.05.2010 10:17, insgesamt 1-mal geändert.
Gert Seler
*******
Beiträge: 1763
Registriert: Di, 03.10.2006 18:05

Re: Optimierung eines Dienstplanes mit Stundenberechnung

Beitrag von Gert Seler »

Hallo Balu,
betrifft "Bedienungsanleitung" in Zelle U5 das Format ändern in [HH]:MM es ja auch so eingestellt.

mfg
Gert
Es gibt nichts gutes, außer man tut es.
Win7_64 / LO_4.4.5.2
scholdes
**
Beiträge: 41
Registriert: So, 02.05.2010 12:51

Re: Optimierung eines Dienstplanes mit Stundenberechnung

Beitrag von scholdes »

Sodele

Nachdem ich jetzt ca. 3 Stunden versucht habe, die in dem anderen Thread angehängten Dateien in einen Dienstplan nach meinem Muster umzustricken, und kläglich gescheitert bin, geh ich jetzt erstmal vor lauter frust im Regen mit den Hundilis Gassi. :twisted:

Der erste Versuch mit der Datei von hexal hat bis Februar funktioniert, ab März leider nicht mehr...

Die anderen Dateien haben gar nicht funktioniert.

Das System ist mir jetzt zwar fast klar, aber so richtig geschnackelt, warum es dann doch nicht funktioniert hats noch nicht...

Wo ist mein (Denk-) Fehler??
Dateianhänge
Schichtplan_test.ods
(24.46 KiB) 107-mal heruntergeladen
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Optimierung eines Dienstplanes mit Stundenberechnung

Beitrag von balu »

Mein lieber Flo,

siehst Du jetzt aus wie ein begossener Pudel, oder deine Hundilis, oder ihr alle ? :lol:

Spaß beiseite.
Nur die Ruhe, es wird schon.
Du bist wohl zu verkrampft an die Sache rangegangen. Und dabei voller Ungeduld durch den Thread gejagt.

Als erstes
Und die zip-Datei kann ich zwar öffnen
Nicht die dortige ZIP-Datei entpacken!

Entweder die Endung .zip löschen, oder aber die zip direkt in Calc öffnen, also über Datei->Öffnen. Das mit der Endung war noch zu einer Zeit, als die Board-Software hier das so verlangte.

Jetzt müsstest Du eigentlich die Beispieldatei "Muster_5er_Schichtplan" in Calc sehen können. Und nun dürfte auch das weitere nacharbeiten meiner Anleitung kein Problem mehr sein.

Der erste Versuch mit der Datei von hexal hat bis Februar funktioniert, ab März leider nicht mehr...
Lass die erst mal aussen vor.

Wo ist mein (Denk-) Fehler??
Da hast Du nicht nur einen Denkfehler, sondern auch einige Technische Fehler drin. Denen wirst Du aber wohl selber auf die Schliche kommen, wenn Du erst mal die dortige Beispiel(Muster)datei geöffnest hast, und mit ihr arbeitest :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
Antworten