Hallo zusammen, (Acc.-Vers. 2007)
ich habe vor eine DB zum Erfassen von Photovoltaik Daten zu erstellen. Dabei kommt es vor, dass nicht an jeden Tag der Zähler abgelesen wird. Daher sollte die eingegebene Zahl bis zum nächst oben stehenden Wert linear aufgeteilt und eingetragen werden.
z.B.:
Die tbl. im Form zeigt die Monate in einer Matrix. Die Daten im Monat Januar sind bis zum 10. gefüllt und werden erst am 15. wieder abgelesen mit dem Wert z.B. 50. Nun soll der Wert 50 am 15. die leeren Zellen nach oben bis einschließlich 11. linear, also 5x 10 eingetragen werden. Hat jemand schon eine derartige VBA Routine geschrieben, wenn ja wäre mir sehr geholfen diesen Ablauf erhalten zu können.
Gruß - Wolfgang
Hallo Wolfgang,
Zunächst : Nein, ich habe keine entsprechende VBA-Routine.
Dann : Warum sollen Deine Zahlen nur tagesgenau nachgetragen werden - oder besser formuliert : „geraten“ werden ? Es ist doch viel sinnvoller, den Ablesehzeitpunkt minutengenau zu erfassen und mit einzugeben ( siehe dazu im Format „Datum“ nach ) - nur dann ist eine Statistik wirklich sinnvoll - wenn es Dir egal ist, ob Dein Zähler am Morgen oder am Abend abgelesen wird, dann hat Deine Erfassung bereits einem Maximal-Fehler von einem Tag. Wenn Du die Zwischenwerte dann NICHT einträgst, kannst Du sehr schön eine X/Y-Grafik-Ausgabe der Zahlen machen ( Ich selbst mache das seit Jahren mit meinen Zählerablesungen Strom/Gas/Wasser ).
Und letztens : Warum solltest Du dazu VBA benötigen ? Es ist doch viel einfacher mit purem Excel : Generiere neben Deiner Excel-Spalte „Ablesewert“ eine weitere namens „verwendeter Wert“, in dem bei vorhandener Ablesung diese und bei nicht vorhandenem Wert die nächste Zahl gesucht und entsprechend unterteilt wird. Falls Du hier nicht mit SVERWEIS oder ähnlichem arbeiten willst, gäbe es den vereinfachten Weg einer weiteren Spalte „nächster Wert“, der jeden Ablesewert jeweils eine Zeile „nach oben“ kopiert, bis ein vorheriger Wert existiert. Diese beiden Arbeits-Spalten kannst Du dann „ausblenden“ und damit unsichtbar machen.
Mit Gruß,
Frank-Thomas
Hallo Frank-Thomas,
Hallo Wolfgang,
Zunächst : Nein, ich habe keine entsprechende VBA-Routine.
Dann : Warum sollen Deine Zahlen nur tagesgenau nachgetragen
werden - oder besser formuliert : „geraten“ werden ? Es ist
doch viel sinnvoller, den Ablesehzeitpunkt minutengenau zu
erfassen und mit einzugeben ( siehe dazu im Format „Datum“
nach ) - nur dann ist eine Statistik wirklich sinnvoll -
wenn es Dir egal ist, ob Dein Zähler am Morgen oder am Abend
abgelesen wird, dann hat Deine Erfassung bereits einem
Maximal-Fehler von einem Tag. Wenn Du die Zwischenwerte dann
NICHT einträgst, kannst Du sehr schön eine
X/Y-Grafik-Ausgabe der Zahlen machen ( Ich selbst mache das
seit Jahren mit meinen Zählerablesungen Strom/Gas/Wasser ).
nein, keine Zeitanteiligen Einträge, es reichen Tageswerte.
Und letztens : Warum solltest Du dazu VBA benötigen ? Es
ist doch viel einfacher mit purem Excel : Generiere neben
Deiner Excel-Spalte „Ablesewert“ eine weitere namens
„verwendeter Wert“, in dem bei vorhandener Ablesung diese und
bei nicht vorhandenem Wert die nächste Zahl gesucht und
entsprechend unterteilt wird. Falls Du hier nicht mit
SVERWEIS oder ähnlichem arbeiten willst, gäbe es den
vereinfachten Weg einer weiteren Spalte „nächster Wert“, der
jeden Ablesewert jeweils eine Zeile „nach oben“ kopiert, bis
ein vorheriger Wert existiert. Diese beiden Arbeits-Spalten
kannst Du dann „ausblenden“ und damit unsichtbar machen.
Eine Excel Datei habe ich bereits, doch die Aufzeichnungen gehen über viele Jahre und deshalb würde ich das ganze in eine DB packen.
Danke für Deinen Hinweis!
Gruß - Wolfgang
Hallo,
vom Prinzip her machbar, wenn auch nicht ganz so einfach.
Im ersten Schritt müssen die Intervalle validiert werden.
d.h. es müsste für jeden Tag geprüft werden, ob ein Folgetag vorhanden ist.
Gibt es kein Folgetag muss der Folgetag mit dem vorhergehenden Wert gefüllt werden.
Sofern du nur eine Messung am Tag machst ist die Datenmenge relativ gering (max. 365 Datensätze pro Jahr. Summieren sich die Daten irgendwann auf einige 10.000 Datensätze oder mehr könnte die Funktion über diei Jahre langsam werden, da zig Abfrage auseführt werden müssen.
Die Frage ist, weshalb du diese Daten überhaupt brauchst?
Die Auswertung ändert sich nicht, egal ob die Daten da sind oder nicht.
mfg
Andreas Osswald
Hallo Andreas,
Hallo,
vom Prinzip her machbar, wenn auch nicht ganz so einfach.
Im ersten Schritt müssen die Intervalle validiert werden.
d.h. es müsste für jeden Tag geprüft werden, ob ein Folgetag
vorhanden ist.
Gibt es kein Folgetag muss der Folgetag mit dem vorhergehenden
Wert gefüllt werden.Sofern du nur eine Messung am Tag machst ist die Datenmenge
relativ gering (max. 365 Datensätze pro Jahr. Summieren sich
die Daten irgendwann auf einige 10.000 Datensätze oder mehr
könnte die Funktion über diei Jahre langsam werden, da zig
Abfrage auseführt werden müssen.
Nein bei 10, 20, 30tsd Datensätzen ist das kein Problem. Ich habe DBen mit 500tsd DS ohne große Antwortzeiten!
Die Frage ist, weshalb du diese Daten überhaupt brauchst?
Die Auswertung ändert sich nicht, egal ob die Daten da sind
oder nicht.
Ich möchte schon die tgl. Rentabilität der Anlage wissen, sowie auch einen Soll/Ist Abgleich machen. So hat mir Deine Antwort nicht viel geholfen, aber trotzdem Danke für Dein Interesse.
Gruß - Wolfgang