Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1156to1160
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Sehr komplizierte Formel - gehts auch einfacher??

Sehr komplizierte Formel - gehts auch einfacher?
Melanie
Hallo Excel-Gemeinde,
ich bin dabei für einen Tag der offenen Tür einen Einsatzplan zu erstellen. Um die Ressourcen vernünftig in Schichten einzuteilen habe ich eine Datei erstellt in der ich zum einen die Personen den Schichten zuteile (Tabellenblatt Einteilung) und zum anderen sehe, wer noch "Leerzeiten" hat (Tabellenblatt Zeitplan).
(Das Tabellenblatt Listen beinhaltet nur Hilfsspalten für die Formel im Blatt Zeitplan).
Ich hab die Datei in sehr abgespeckter Version mal hochgeladen, wobei die Funktion vollständig enthalten ist. Ich habe aber den Zeitplan auf eine Person und wenige Stunden verkürzt wegen der Dateigröße. Die tatsächliche Datei beinhaltet ca. 20 Personen von 08:00 bis 20:00 Uhr.
https://www.herber.de/bbs/user/69667.xls
Es funktioniert soweit alles, was schon mal gut ist, nur wird die Datei aufgrund der vielen Verweise und Abgleiche sehr groß und damit auch langsam. Daher meine Frage; hat jemand eine Idee, wie man das eventuell eleganter lösen kann?
Im Voruas schon mal Danke für Eure Tipps!
LG, Melanie
Das geht sicher einfacher, aber...
20.05.2010 16:05:10
{Boris}
Hi Melanie,
wer soll sich da bitteschön durchwühlen? Teil das mal in Einzelschritte ein.
Grüße Boris
AW: Das geht sicher einfacher, aber...
20.05.2010 16:28:59
Melanie
Okay ich versuchs mal schlüssig zu machen anhand der Formel aus Zelle D4:
WENN(UND(
'Sverweis schaut nach, ob ein x in der Spalte der jeweiligen Schicht steht
(SVERWEIS($A$3;Daten;
WENN(UND(
TEXT(D$1;"hh:mm")>=Listen!$E$2; 'die aktuelle Zeit ist größer als der Beginn der Schicht1
TEXT(D$1;"hh:mm")<Listen!$H$2); 'und kleiner als das Ende der Schicht1
Listen!$K$2; 'Dann-Wert -> Spalte der Schicht 1
WENN(UND(
TEXT(D$1;"hh:mm")>=Listen!$F$2; 'die aktuelle Zeit ist größer als der Beginn der Schicht2
TEXT(D$1;"hh:mm")<Listen!$I$2); 'und kleiner als das Ende der Schicht2
Listen!$L$2; 'Dann-Wert -> Spalte der Schicht 2
WENN(Listen!$D$2=3;Listen!$M$2;100)));0)="x") 'Wenn es drei Schichten gibt, dann nimm Spalte Schicht 3, Prüfe ob dabei ein x herauskommt
'Multipliziert wird das ganze dann mit der Prüfung ob die aktuelle Uhrzeit kleiner = des jeweiligen Schichtendes ist
*(D$1<=INDIREKT("Einteilung!$"&ZEICHEN(WENN(UND(TEXT(D$1;"hh:mm")>=Listen!$E$2;TEXT(D$1;"hh:mm")<Listen!$H$2);Listen!$K$2;WENN(UND(TEXT(D$1;"hh:mm")>=Listen!$F$2;TEXT(D$1;"hh:mm")<Listen!$I$2);Listen!$L$2;WENN(Listen!$D$2=3;Listen!$M$2;Listen!$O$2)))+64)&"$5"));
'Das ganze wird wiederholt, nur wird hier geprüft, ob das Ergebnis größer= dem jeweiligen Schichtbeginn ist
(SVERWEIS($A$3;Daten;WENN(UND(TEXT(D$1;"hh:mm")>=Listen!$E$2;TEXT(D$1;"hh:mm")<Listen!$H$2);Listen!$K$2;WENN(UND(TEXT(D$1;"hh:mm")>=Listen!$F$2;TEXT(D$1;"hh:mm")<Listen!$I$2);Listen!$L$2;WENN(Listen!$D$2=3;Listen!$M$2;100)));0)="x")*(D$1>=INDIREKT("Einteilung!$"&ZEICHEN(WENN(UND(TEXT(D$1;"hh:mm")>=Listen!$E$2;TEXT(D$1;"hh:mm")<Listen!$H$2);Listen!$K$2;WENN(UND(TEXT(D$1;"hh:mm")>=Listen!$F$2;TEXT(D$1;"hh:mm")<Listen!$I$2);Listen!$L$2;WENN(Listen!$D$2=3;Listen!$M$2;Listen!$O$2)))+64)&"$4")));
'Wenn für beides ein Wahr rauskommt, dann wird der Key für die Tätigkeit in die Zelle geschrieben
INDIREKT("Einteilung!$"&ZEICHEN(WENN(UND(TEXT(D$1;"hh:mm")>=Listen!$E$2;TEXT(D$1;"hh:mm")<Listen!$H$2);Listen!$K$2;WENN(UND(TEXT(D$1;"hh:mm")>=Listen!$F$2;TEXT(D$1;"hh:mm")<Listen!$I$2);Listen!$L$2;WENN(Listen!$D$2=3;Listen!$M$2;Listen!$O$2)))+64)&"$3")
'ansonsten eine null
;0)
Hilft das?
LG, Melanie
Anzeige
AW: Das geht sicher einfacher, aber...
20.05.2010 16:40:09
grexx123
Hallo Melanie,
Schreib lieber in Worten, was du machen willst - das aufteilen in dieser Art hilft auch nicht sehr... ;-)
AW: Das geht sicher einfacher, aber...
20.05.2010 16:48:42
Melanie
Es soll geprüft werden, ob die entsprechende Person zu dieser Zeit bereits einer Schicht zugeteilt ist. Eigentlich ganz simpel :)
Ich kapier schon mal gar nicht, ...
20.05.2010 16:43:24
{Boris}
Hi Melanie,
...warum Du die Zeiten in TEXT konvertierst. M.E. a) völlig unnötig und b) total fehleranfällig, da Du Text miteinander mathematisch vergleichst (größer/kleiner/gleich), was man nie tun sollte.
Ich ziel dabei auf solche Formeln ab wie z.B. Listen!E2:
=TEXT(MIN(INDIREKT("Einteilung!$"&C2&"$4:$"&ZEICHEN(B3-1+64)&"$4"));"hh:mm")
Da reicht
=MIN(INDIREKT("Einteilung!$"&C2&"$4:$"&ZEICHEN(B3-1+64)&"$4"))
und auch das ist wohl noch zu viel. Warum referenzierst Du nicht direkt auf die Zelle mit dem kleineren Startwert - dann muss MIN auch nicht mehr drum rum.
Dann die ganzen Ermittlung der Spaltennummern und dann noch Umwandlung in Spaltenbuchstaben - ich denke, da baut sich viel unnötiger Ballast auf. Und das mündet dann letztlich auch in der von Dir angefragten Monsterformel...
Grüße Boris
Anzeige
AW: Ich kapier schon mal gar nicht, ...
20.05.2010 16:48:03
Melanie
Hi Boris,
genau darum gings mir ja. Es eleganter und einfacher zu machen. Wenn Du mir sagen möchtest, wie ich es besser machen kann, gerne.
Aber mit Deiner Antwort fang ich leider nicht wirklich was an.
Grüße, Melanie
Die verwendeten Formelkonstruktionen..
20.05.2010 17:02:36
{Boris}
Hi Melanie,
...wie z.B. die von mir beispielhaft genannte, zeugen ja grundsätzlich bereits von großem Formelverständnis (Verwendung INDIREKT, korrekte Stringverkettung, Funktionsverschachtelungen etc.). Das steht aber im krassen Gegensatz z.B. zur Tatsache, vorhandene Zeiten (also Zahlen) in Text umzuwandeln - das wiederum lernt man in der ersten Excelstunde, dass Uhrzeiten Zahlen sind und man dann auch mit diesen weiterrechnet.
Das passt also für mich alles nicht zusammen. Das Umbasteln wird wahrscheinlich deutlich länger dauern als das Selbstbasteln - aber für Letzteres muss die Aufgabe klar sein.
Grüße Boris
Anzeige
AW: Die verwendeten Formelkonstruktionen..
20.05.2010 19:31:20
Melanie
Hi Boris,
so ein Forum ist da um dazu zu lernen. Nicht jeder hat Excel in einem Kurs von der Pike auf gelernt, die meisten müssens on the job, nebenbei lernen und dann macht man eben Sachen, die für High-Level User gar nicht gehen.
Ich dachte einfach nur, vielleicht kann ich ja was besser machen und es ärgert mich echt, wenn sich die Antworter hier im Forum dann so en bissel überheblich geben. Wenn ich alles könnte, würde ich es hier nicht posten.
Ich dank Dir, dass Du es Dir angeschaut hast und versuchs dann mal ohne Textumwandlung.
Grüße, Melanie
Versteh mich nicht falsch...
20.05.2010 20:54:11
{Boris}
Hi Melanie,
...hier im Forum wird Dir auf gezielte Fragen sicherlich gern geholfen. Aber wahrscheinlich hast Du Dich inzwischen so in Deine Mappe vertieft und Dich dabei etwas verwuselt, dass es für einen Außenstehenden nicht unbedingt einfach ist, sich da rein zu denken, um alles nach und nach zu vereinfachen. Da ist es in der Tat einfacher, das Grundgerüst (ohne Formeln) neu zu bauen bzw. zu beschreiben. Alles andere ist langwierige Flickschusterei.
Grüße Boris
Anzeige
AW: Versteh mich nicht falsch...
21.05.2010 11:09:44
Melanie
Hi Boris,
ich hab jetzt in der Tat noch mal ziemlich von vorn angefangen um mir die Logik noch mal neu aufzubauen, und was soll ich sagen, von 9 auf 2,5 MB in zwei Stunden ;)
Danke noch mal für Deine Impulse!
Grüße, Melanie

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige