Calc-Funktionen in Makros umwandeln?
Verfasst: So, 28.11.2010 14:40
Hallo, bin neu hier und möchte meine Calc-Tabelle beschleunigen.
Ist es möglich, eine Zellberechnung mit mehreren Funktionen/Operationen, die in sehr viele Zellen eines Bereiches kopiert ist, als Makro zu programmieren und dann nur als neue Funktion im entsprechenden Zellbereich aufzurufen und auszuführen?
Das müsste doch die Größe des Arbeitsblattes reduzieren und die Berechnung beschleunigen, da die Funktion nur einmal und nicht viele Male programmiert und ausgeführt wird?
Ich möchte in folgender Tabelle (die über 100 Schichten beinhaltet und noch mehrere Blätter hat), in Spalte G (Nacht) die Formel als Makro ausführen lassen (in der Art: =FktNacht(B7;C7;$G$2;$G$3)).
In G2 und G3 stehen die Grenzen des Nachtarbeitszeitraumes als Konstanten und in B7 und C7 Beginn und Ende der Arbeitszeit.
G2-> von: 20:00
G3-> Bis: 06:00
Spalte A B C D E F G
Schichtnr. Dienstbeginn Dienstende Brutto Pause Netto Nacht
5001 03:35 11:59 08:24 00:30 07:54 02:25
5002 03:35 12:09 08:34 00:30 08:04 02:25
5003 14:30 00:31 10:01 00:45 09:16 04:31
5004 12:20 21:48 09:28 00:30 08:58 01:48
5005 05:10 14:29 09:19 00:30 08:49 00:50
5006 03:40 12:19 08:39 00:30 08:09 02:20
5007 14:00 23:58 09:58 00:45 09:13 03:58
5008 10:44 20:29 09:45 00:45 09:00 00:29
5009 03:33 12:19 08:46 00:30 08:16 02:27
5010 08:32 17:55 09:23 00:30 08:53 00:00
Die Formel in Spalte G lautet:
=MAX(0;MIN(G$3+(G$2>G$3);C7+(B7>C7))-MAX(G$2;B7))+MAX(0;(MIN(G$3;C7+(B7>C7))-B7)*(G$2>G$3))+MAX(0;MIN(G$3+(G$2>G$3);C7+0)-G$2)*(B7>C7)
Evtl. möchte ich auch noch in Spalte D und E die entsprechenden Formeln umwandeln:
Spalte D: =WENN(B7<C7;(C7-B7);(C7+1-B7))
Spalte E: =WENN(D7<=0,25;0;WENN(D7>=0,40625;0,03125;1/48))
Alle Zellen sind mit Uhrzeitformat HH:MM formatiert. Im Anhang ist noch mal die Bsp.-datei.
Vielen Dank!
Ist es möglich, eine Zellberechnung mit mehreren Funktionen/Operationen, die in sehr viele Zellen eines Bereiches kopiert ist, als Makro zu programmieren und dann nur als neue Funktion im entsprechenden Zellbereich aufzurufen und auszuführen?
Das müsste doch die Größe des Arbeitsblattes reduzieren und die Berechnung beschleunigen, da die Funktion nur einmal und nicht viele Male programmiert und ausgeführt wird?
Ich möchte in folgender Tabelle (die über 100 Schichten beinhaltet und noch mehrere Blätter hat), in Spalte G (Nacht) die Formel als Makro ausführen lassen (in der Art: =FktNacht(B7;C7;$G$2;$G$3)).
In G2 und G3 stehen die Grenzen des Nachtarbeitszeitraumes als Konstanten und in B7 und C7 Beginn und Ende der Arbeitszeit.
G2-> von: 20:00
G3-> Bis: 06:00
Spalte A B C D E F G
Schichtnr. Dienstbeginn Dienstende Brutto Pause Netto Nacht
5001 03:35 11:59 08:24 00:30 07:54 02:25
5002 03:35 12:09 08:34 00:30 08:04 02:25
5003 14:30 00:31 10:01 00:45 09:16 04:31
5004 12:20 21:48 09:28 00:30 08:58 01:48
5005 05:10 14:29 09:19 00:30 08:49 00:50
5006 03:40 12:19 08:39 00:30 08:09 02:20
5007 14:00 23:58 09:58 00:45 09:13 03:58
5008 10:44 20:29 09:45 00:45 09:00 00:29
5009 03:33 12:19 08:46 00:30 08:16 02:27
5010 08:32 17:55 09:23 00:30 08:53 00:00
Die Formel in Spalte G lautet:
=MAX(0;MIN(G$3+(G$2>G$3);C7+(B7>C7))-MAX(G$2;B7))+MAX(0;(MIN(G$3;C7+(B7>C7))-B7)*(G$2>G$3))+MAX(0;MIN(G$3+(G$2>G$3);C7+0)-G$2)*(B7>C7)
Evtl. möchte ich auch noch in Spalte D und E die entsprechenden Formeln umwandeln:
Spalte D: =WENN(B7<C7;(C7-B7);(C7+1-B7))
Spalte E: =WENN(D7<=0,25;0;WENN(D7>=0,40625;0,03125;1/48))
Alle Zellen sind mit Uhrzeitformat HH:MM formatiert. Im Anhang ist noch mal die Bsp.-datei.
Vielen Dank!