25.09.2024, 13:38 (Dieser Beitrag wurde zuletzt bearbeitet: 25.09.2024, 13:38 von Jack_d.)
Moin Ralf ,
danke nochmal.
Hilf mir kurz .. Ist das nicht das gleiche nur, dass du es in ne Funktion auslagerst? Wieso ist das dann schneller?
Deine Vermutung zu PowerPivot kann ich bestätigen. Ich nutz es nur äusserst selten, da ich idR mir das in PQ bereits zurechtbastel komm ich mutmaßlich besser mit zurecht, auch wenn die Vorteile bei 1:n Daten auf der Hand liegen
Grüße Jack
Edith sagt: Ich musste Excel killen .. der Code hat es in die Knie gewzungen
25.09.2024, 14:21 (Dieser Beitrag wurde zuletzt bearbeitet: 25.09.2024, 14:23 von Ralf A.)
...hmmm... nun ja... hatte mir die Spalte "Nächster Termin" gespart. Und auswerten muss man es so oder so. Zeile für Zeile. Selbst wenn man mit List.Generate eine Liste erstellen ließe, müssen immer alle relevanten Werte ausgewertet werden. Wüßte jetzt nicht, wie man das sonst lösen sollte. Die Funktion hat übrigens folgenden Aspekt nicht berücksichtigt: Wenn (z. Bsp. durch Eingabefehler) der nächste Termin vor dem Ende des letzten liegt. Das kann dann so abgefangen werden:
PHP-Code:
(Ende as number, nextStart as number, Startdatum as date, NextDat as date, enderaum as text, startraum as text) =>
let Ergebnis = if Startdatum = NextDat then if startraum = enderaum then if nextStart < Ende then 0 else nextStart - Ende else "" else "" in Ergebnis
Überall da, wo dann 00:00:00 steht, stimmt irgendwas nicht....
Zitat:Ich musste Excel killen .. der Code hat es in die Knie gewzungen
Vielleicht doch kleinere Brötchen backen und den Zeitraum eingrenzen?
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben. Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.
mit der Änderung von Detlef (Table.Buffer) hat es meine Version hinbekommen. ... auch der Code von Luschi läuft- auch wenn ich ihn leider nicht verstehe. auch dein Code läuft - wenn auch mit geringeren Mengen
Zitat:Die Funktion hat übrigens einen Aspekt nicht berücksichtigt: Wenn (z. Bsp. durch Eingabefehler) der nächste Termin vor dem Ende des letzten liegt. Das sollte dann so behandelt werden:
Stimmt -- hab das so gelöst, dass ich negative Differenzen (2 Datensätze) eliminiere
Zitat:Wüßte jetzt nicht, wie man das sonst lösen sollte.
Indem man den Datensätzen verschiedene Indizies gibt und so über einen Join den nachfolgenden Datensatz anhängt (index +1) Dann kannst Spaltendifferenzen berechnen. Das ist zumindest für mein begrenztes Verständnis der effektivste Weg.
Den ganzen Datenbankern wie Ebs und CO, werden da sicher auch noch andere Lösungen schiessen, weil das zumindest mutmaßlich in der DB Welt häufiger vorkommt
Zitat:Stimmt -- hab das so gelöst, dass ich negative Differenzen (2 Datensätze) eliminiere
...ob das so gut ist? Das sind doch gebuchte Termine, oder nicht? Die sollten korrigiert werden. Dazu müssen sie erkannt werden. Aber... weg ist weg... Oder geht's nicht um die Planung sondern wirklich nur um die Auswertung.... na dann ist's egal, wenn 2 DS fehlen...
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben. Nur, weil ich den Recorder bedienen kann, macht mich das noch lange nicht zum Musiker.
Ich habe nun auch eine Lösung erstellt, die auch wie die Lösung von Luschi nur ca. 2 Sekunden für knapp 22.000 Datensätze benötigt. Der hauptsächliche Unterschied besteht darin, dass ich die Anzahl Minuten bis zum Beginn der nächsten Belegung ermittle, währen Lusiche das Ende zuvor ermittelt.
Die Testdaten sowie die Auswertung werden beim öffnen der Mappe generiert.
Folgende(r) 1 Nutzer sagt Danke an ws-53 für diesen Beitrag:1 Nutzer sagt Danke an ws-53 für diesen Beitrag 28 • Jack_d
Danke für deine Lösung .. sie funktioniert wunderbar. Ist im KErn gleich meines ersten Lösungsansatzes. Da hat es nur die Zuordnung verschossen .. warum auch immer .. DIes funktioniert in deiner Lösung allerdings klaglos =)
"I agree that it is less than ideal, but it underscores the importance of always checking the output. "
Is halt insofern ärgerlich (wenn man seinem Vorredner folgt) das es manchmal erst bei einer späteren Bearbeitung auftritt. - also man teste in nem Muster - funzt - übersetzt es zum eigentlichen Problem und sieht den Fehler nicht (weil er zb erst beim xten Datensatz auftritt