[gelöst] Automatischer Terminkalender

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

Rocket Scientist
Beiträge: 7
Registriert: Di, 18.05.2021 16:36

[gelöst] Automatischer Terminkalender

Beitrag von Rocket Scientist »

Mein Problem ist sehr ähnlich dem in diesem Thread. Nach viel Leserei im Internet und Experimentierei bin ich aber leider kaum schlauer als vorher. Zumindest weiß ich schonmal was "Offset" macht und dass ich dieses wol benötigen werde, weil man das gut mit Bedingungen verknüpfen kann. Vielleicht weicht mein Problem auch nur zu stark von dem im obigen Thread ab.

Es geht um Folgendes:
In einer großen Liste sind sehr viele Termine eingetragen, in je 2 Spalten mit Datum und einem kleinen Beschreibungstext.
In einer anderen, deutlich kürzeren Liste sollen nur die nächst anstehenden Termine (aus der großen Liste) sortiert aufgelistet werden (nächster Termin zuerst).
Die große Liste ist (optimalerweise) durcheinander und wird mit dem aktuellen Datum ( =today() ) verglichen, enthält aber auch abgelaufene Termine.

Nun habe ich mehrere Fragen/Probleme: (neben der, wie ich das überhaupt realisieren soll)
- es wäre gut, wenn die kleine Liste auch dann korrekt funktioniert, wenn die Daten in der großen nicht korrekt nach Datum sortiert sind (Datum durcheinander)
- es sollte auch alles im selben Sheet und ohne Hilfstabellen funktionieren (wenn es aber nicht anders geht, ist es eben so)

- ich habe festgestellt, dass man die Daten nicht per Mausklick automatisch sortieren lassen kann (dieser A-Z Button), wenn es sich um verbundene Zellen handelt. Gibt es dafür eine andere Lösung? (aktuell muss ich die Zellen öffnen, sortieren und dann wieder verbinden, was unglaublich umständlich ist) Allerdings ist diese manuelle Sortierung zumindest in dem Fall evtl. eh nicht von Belang

- Ich habe in der kleinen Tabelle "Conditional Formatting" angewandt (weiß grad nicht wie das auf deutsch heißt), damit Termine innerhalb der nächsten 7 Tage automatisch rot formtiert werden (im Original File ist das noch viel komplizierter). Wenn ich einen Rechtsklick auf diese Zellen mache erscheint "Manage Conditional Formatting". Allerdings ist das nicht zuverlässig. Manchmal erscheint es, nach einer Weile aber nicht mehr. Nach einer Weile erscheint bei mir auf den betroffenen Zellen nur noch "conditional Formatting" und ich kann nur noch neue Funktionen zuteilen, die alten aber nicht mehr bearbeiten... Warum ist das so? Ist das ein Bug? Ich muss dann über das Hauptmenü unter "Format" ins "Conditional Managemenü", was kein Problem darstellt aber komisch ist das trotzdem, weil es so willkürlich erscheint. Vielleicht bediene ich auch etwas falsch.


- Ich denke auch noch darüber nach, eine dritte Spalte mit "Zusatzkonditionen" hinzuzufügen. Sodass in der kleiner Liste nur Termine mit der Prio "1" erscheinen dürfen, als Beispiel... (bzw. zwei kleine Listen damit bedient werden, eine für unwichtige und eine für wichtige Termine, die alle gemischt in er großen Liste verbleiben können und per "Prio"-Spalte getaggt werden.)

Ich habe eine Beispiel Tabelle erstellt (siehe Anhang).
In der ist viel los (viele Formatierungen kreuz und quer, hat im Original natürlich dennoch System). Nur für den Fall, dass der Teufel wiedermal im Detail steckt... Bzw. damit man auch optisch versteht, was ich will. Im Beispiel sind die Daten in der großen Liste aber bereits sortiert. Das "aktuelle Datum" unter A1 habe ich zu Testzwecken erstmal manuell eingegeben.
Dateianhänge
Fitzelkramkalkulator.ods
(13.46 KiB) 85-mal heruntergeladen
Zuletzt geändert von Rocket Scientist am Do, 27.05.2021 09:52, insgesamt 2-mal geändert.
Mondblatt24
*******
Beiträge: 1136
Registriert: So, 14.05.2017 16:11

Re: Automatischer Terminkalender

Beitrag von Mondblatt24 »

Hallo,
Rocket Scientist hat geschrieben: Di, 18.05.2021 22:54 - es wäre gut, wenn die kleine Liste auch dann korrekt funktioniert, wenn die Daten in der großen nicht korrekt nach Datum sortiert sind (Datum durcheinander)
Das ist nicht so schwer (jedenfalls in der Beispieldatei).

Habe die kleine Tabelle für mein Beispiel neu angelegt, weil ich keine Lust hatte, nach dem runterkopieren der Formeln, die Zellen neu zu verbinden.

Fitzelkramkalkulator 1.ods
(15.41 KiB) 100-mal heruntergeladen

Unter OpenOffice ist die Formel in AC13 eine Matrixformel und die Eingabe muss mit Strg + Umschalt + Enter abgeschlossen werden.

Gruß
Peter

PS: LibreOffice oder OpenOffice?
PPS: "Pro Thread ein Thema
vermischt nicht verschiedene Fragen in einem Thread sondern eröffnet für unterschiedliche Fragen jeweils einen separaten Thread"
(Zitat aus den Allgemeinen Hinweisen zur Forumsbenutzung)
Win 11 (x64) ▪ 24.2.2.2 (x64) ▪ AOO Portable 4.1.15
Wurde die Frage zutreffend beantwortet bitte den Betreff der Eingangsfrage mit [GELÖST] ergänzen. Beschreibung
Rocket Scientist
Beiträge: 7
Registriert: Di, 18.05.2021 16:36

Re: Automatischer Terminkalender

Beitrag von Rocket Scientist »

Vielen Dank für die Hilfe.
Mondblatt24 hat geschrieben:PPS: Beschränke Dich bitte pro Thema auf eine Frage. Danke
Ich muss es mir tatsächlich abgewöhnen immer gleich zu viele auf einmal zu stellen. Ich habe die abweichenden Fragen der Übersichtlichkeit halber im Original Post mal grau abgesetzt.
hat geschrieben:PS: LibreOffice oder OpenOffice?
Ich nutze Libre Office.
Unter OpenOffice ist die Formel in AC13 eine Matrixformel und die Eingabe muss mit Strg + Umschalt + Enter abgeschlossen werden.
Das habe ich hier schon mehrmals gelesen und noch nicht verstanden. Ich mache das nie und dennoch funktionieren die Formeln (zumindest scheinbar). Ist das von Software zu Software unterschiedlich? Oder was ist da der genaue Hintergrund?


Code: Alles auswählen

=SUMPRODUCT(SMALL(IF($S$12:$S$40>=TODAY();$S$12:$S$40);ROW(A1)))
Nur der Verständniss halber, weil ich die Formeln auch verstehen möchte: Was macht "ROW" genau? Also A1 ist der nächste Wert von SMALL und A2 der zweitnächste von SMALL? Und warum "A" ? Generiert "SMALL" quasi seine eigene Spalte A? Ich war erst irritiert, weil in z.B. A2 in zumindest meiner Tabelle keine Werte stehen.
Ich habe testweise mein Datum ( =today() ) das ja in A1 steht, nach D14 verschoben und dadurch ist die obige Formel kaputt gegangen, weil auch dort A1 zu D14 wurde.
Habe die Formel dann manuell wieder auf A1 umgeschrieben und sie funktionierte wieder. Ich baue öfters meine Tabellen um und würde dadurch ausversehen solche Formeln zerstören. Ich finde das entweder merkwürdig gelöst oder habe es nicht ganz verstanden. A1 in der Formel könnte ich auch mit "$" festsetzen, aber dann muss ich drann denken, beim kopieren der Formel es temporär zu entfernen oder die Werte (A1, A2, A3...) händisch anzupassen, was bei sehr vielen Feldern entsprechend Arbeit macht.



Es kann aber auch z.B. vorkommen, dass ein Termin eingetragen wird, der am selben Tag eines anderen statt findet.
Wenn jetzt z.B. "Test 1" und "Test 2" am selben Tag statt finden, dann werden in der kleinen Liste zwar beide Tage hintereinander aufgeführt, sodass man erkennt, dass es zwei Termine am selben Tag gibt, aber in beiden Zeilen steht "Test1", weil VLOOKUP immer von oben nach unten den ersten Wert nimmt, den es findet.
Gibt es dafür eine einfache Lösung oder geht das nur mit weiteren Formeln, die nach doppelten Einträgen suchen?

Alternativ ist meine Idee in der großen Liste, wo alle Termine durcheinander eingetragen werden, in einer extra Spalte z.B. die Formel

Code: Alles auswählen

=IF(COUNTIF($S$11-$S$40;S11)>1;"Doppelt!";"")
einzusetzen, um damit doppelte Datumsangaben schon vorher ausfindig zu machen. Dann wird man nach einem neuen Eintrag sofort darauf aufmerksam, dass am gleichen Tag bereits ein Termin statt findet, beide automatisch markiert und man kann dann händisch den zweiten Termin im bereits vorhanden, in das Beschreibungsfeld dazu tragen, sodass jeder Tag nur einmal in der großen Liste vorkommt.

Den Anzeigefehler dass #VALUE! in der kleinen Liste angezeigt wird, wenn es weniger verbleibende Termine gibt, als die kleine Liste Zeilen hat,
habe ich mit =IFERROR(eigentlicheformel;"") behoben.
Mondblatt24
*******
Beiträge: 1136
Registriert: So, 14.05.2017 16:11

Re: Automatischer Terminkalender

Beitrag von Mondblatt24 »

Rocket Scientist hat geschrieben: Do, 20.05.2021 10:03 Ich mache das nie und dennoch funktionieren die Formeln (zumindest scheinbar).
Dann versuch mal diese Formel in AC13:

Code: Alles auswählen

=KKLEINSTE(WENN($B$3:$B$31>=HEUTE();$B$3:$B$31);ZEILE(A1))
Ohne sie als Matrixformel einzugeben, funktioniert die Formel nicht.

Bei LibreOffice kann bei machen Matrixformeln das Abschließen mit Strg+Umschalt+Enter umgangenen werden, wenn Summenprodukt voranstellt wird.
Und das funktioniert bei OpenOffice aus irgendeinem Grund nicht.
Matrix-Funktionen
Rocket Scientist hat geschrieben: Do, 20.05.2021 10:03 Und warum "A" ?
Muss nicht "A" sein, die Hauptsache ist das Zeile() in dem Fall 1 zurückgibt. Es kann auch (für AC13) Zeile()-12 verwendet werden.
Win 11 (x64) ▪ 24.2.2.2 (x64) ▪ AOO Portable 4.1.15
Wurde die Frage zutreffend beantwortet bitte den Betreff der Eingangsfrage mit [GELÖST] ergänzen. Beschreibung
echo
*******
Beiträge: 1005
Registriert: Fr, 14.11.2008 15:27
Wohnort: BRA - Nds

Re: Automatischer Terminkalender

Beitrag von echo »

Hallo zusammen,
solltest du mehr wie einen Termin pro Tag bekommen,
bekommst du den Tag in deiner Liste mehrfach angezeigt und der Sverweis() wird dir den ersten Termin doppelt anzeigen.

Ich habe daher mal einen andern Weg gewählt und einige Hilfsspalten eingefügt, die die Termine zuerst zusammenfügt.
Fürs Datum habe ich die Formel ab der zweiten Zeile etwas angepasst, so das doppelte Daten nicht angezeigt werden.
Off-topic : Ich habe dafür die verbundenen Zellen aufgelöst. Davon solltest du mE. Abstand nehmen.

Was deine Frage zur Matrix-Formel angeht, ich versuche es mal mit meinen Worten zu erklären:

Summenprodukt arbeitet sowieso matrixorientiert, daher ist hier die erwähnte Eingabe unnötig.

Anders ist es zB. bei erwähnten Formel von @ Mondblatt24
=KKLEINSTE(WENN($B$3:$B$31>=HEUTE();$B$3:$B$31);ZEILE(A1))

=WENN($B$3>=HEUTE();$B$3);"")
Das ist die normale Arbeitsweise einer Formel, eine Zelle wird geprüft und abhängig von der Prüfung gibt es ein Ergebnis.
=WENN($B$3:$B$31>=HEUTE();$B$3:$B$31);"")
Das soll jetzt aber Zeile für Zeile (Matrix) erneut durchgeführt werden , Zeile für Zeile mit einem eigenen Ergebnis.
Genau das bewirkt die Einstellung als Matrixformel.
Machst du das nicht wird die Erweiterung als Fehler ausgegeben,
oder die Erweiterung wird einfach ignoriert, die Formel wird die Prüfung nur ein mal in der ersten Zeile durchführen.
Zu beachten ist, das alle Matrizen der Formel die gleiche Anzahl an Zeilen hat.

Gruß Holger
Dateianhänge
Fitzelkramkalkulator3.ods
(15.93 KiB) 77-mal heruntergeladen
Mondblatt24
*******
Beiträge: 1136
Registriert: So, 14.05.2017 16:11

Re: Automatischer Terminkalender

Beitrag von Mondblatt24 »

Rocket Scientist hat geschrieben: Do, 20.05.2021 10:03 Es kann aber auch z.B. vorkommen, dass ein Termin eingetragen wird, der am selben Tag eines anderen statt findet.
Dann könnte man doch von vornherein Datum und Uhrzeit in der großen Liste eintragen dann kommen doppelte gar nicht erst vor.

Das ginge z. B., ohne langes Tippen, per Shortcut (bei mir nacheinander Strg+, anschließend gleich Strg+Umschalt+,)
Dateianhänge
Fitzelkram 5.ods
(51.34 KiB) 80-mal heruntergeladen
Win 11 (x64) ▪ 24.2.2.2 (x64) ▪ AOO Portable 4.1.15
Wurde die Frage zutreffend beantwortet bitte den Betreff der Eingangsfrage mit [GELÖST] ergänzen. Beschreibung
Rocket Scientist
Beiträge: 7
Registriert: Di, 18.05.2021 16:36

Re: Automatischer Terminkalender

Beitrag von Rocket Scientist »

Eine Aufgabe die ich noch lösen möchte (mehrere "kleine Termintabellen" bzw. nenne ich sie mal lieber "Prio-Listen"):
Ich möchte in der großen Terminliste noch eine dritte Spalte "Prioritäten" hinzufügen.
Wenn in der Spalte eine "1" steht, soll der Termin in die Prio-Liste-1 (hohe Prio) gelistet werden und bei "2" in die Prio-Liste-2 (niedrige Prio).
(in meinem Fall bedeutet hohe Prio = Termin MUSS wahrgenommen werden, niedrige Prio: er ist optional oder unwichtig)

Ich weiß jetzt aber nicht ob die Formel

Code: Alles auswählen

=SUMPRODUCT(SMALL(IF($S$12:$S$40>=TODAY();$S$12:$S$40);ROW(A1)))
dazu geeignet ist. Die prüft ja die Zellen S12-S40 nur gegen den globalen Wert TODAY(). Für obigen Fall müsste sie aber zusätzlich jede "Prioritäten"-Zelle neben dem jeweiligen Datum miteinbeziehen (ob deren Wert 1 oder 2 ist). Ich bin mir nicht sicher, ob man dem Code noch sowas wie OFFSET oder VLOOKUP hinzufügen kann, bzw. an welcher Stelle dies geschieht (meine bisherigen Experimente dazu sind fehlgeschlagen).

Das soll dem dienen, dass man nicht mit 2 großen Listen (eine für jeweils jede kleine-Prio-Liste) hantieren muss, bzw. bei Änderung der Prio eines Termins, nicht mehrere Zellen durch die Gegend kopieren muss, sondern einfach nur die Zahl ändern braucht. Oder wenn unwichtige Termine mit wichtigen auf den selben Tag zusammenfallen (was sein darf, im Gegensatz zu zwei wichtigen), wandern diese dadurch automatisch in getrennte Prio-Listen, was bei Doppelbelegung desselben Tages auch verhindert, dass ein unwichtiger Termin einem wichtigen beigemischt wird (angenommen ich führe mehere Termine wie schon oben besprochen in eine Zeile zusammen).


---------------------
[edit]
Habe es nun doch selbst heraus gefunden (Beispiel):

=SUMPRODUCT(SMALL(IF($S$12:$S$40>=TODAY();IF($U$12:$U$40="1";$E$12:$E$40));ROW(A1)))
Ich wusste noch nicht, dass man mehrere "IF's" ineinander stacken kann.
Ich hoffe das ist so in Ordnung? Es funktioniert erstmal wie es soll. So werden nur Werte bezogen die in $U$12:$U$40 eine 1 enthalten.
---------------------


Mondblatt24 hat geschrieben: Do, 20.05.2021 14:22
Rocket Scientist hat geschrieben: Do, 20.05.2021 10:03 Es kann aber auch z.B. vorkommen, dass ein Termin eingetragen wird, der am selben Tag eines anderen statt findet.
Dann könnte man doch von vornherein Datum und Uhrzeit in der großen Liste eintragen dann kommen doppelte gar nicht erst vor.

Das ginge z. B., ohne langes Tippen, per Shortcut (bei mir nacheinander Strg+, anschließend gleich Strg+Umschalt+,)
Mir reicht es aktuell tagesgenau (für feineres habe ich andere Dokumente) und die Art Termine sollen ohnehin nicht auf den selben Tag fallen. Aber ich habe das bereits gelöst, dass die große Liste mir den doppelten Tag kenntlich macht und ich dann entsprechend reagieren kann (umplanen oder zum vorhandenen dazutragen). Ansonsten kann es höchstens noch passieren dass ein wichtiger Termin mit einem unwichtigen auf den selben Tag fällt, was dann aber nach Möglichkeit mithilfe der zusätzlichen Prioritätenspalte in der großen Liste dann auf mehrere kleine Listen verteilt wird (siehe weiter oben).
Antworten