648 Aufrufe
Gefragt in Tabellenkalkulation von
'n Abend liebe Helfer,

Habe hier ein Problem mit einer Messtabelle:

In A1 Jahreszahl, also jetzt "2016".
ab A2 in Spalte diverse Datumsdaten die nicht immer (wie beim Kalender), fortlaufend sind.
Ab B2 in Spalte Messdaten zum jeweiligen Datum. Später kommen noch mehr Spalten dazu.

Ich nehme mit der Formel
=WENN(ISTLEER($A$1);"";DATUM($A1;8;27))
in Zelle A2 Bezug auf diese Jahreszahl (Im Beispiel fängt die Auswertung am 27.08.2016 an)
Zelle A3 wird mit
=WENN(ISTLEER($B2);"";$A2+1)
befüllt und lässt sich ab hier runterziehen. Durch das Abfangen der leeren Spalte kann ich das Datum z.B. um einen Monat voraus eingeben ohne das es sichtbar wird. Es aktiviert sich erst bei einer Eingabe in Spalte B am Tag vorher.
Soweit funktioniert alles wie gewünscht.
Das Messergebnis daneben in Spalte B bezieht sich natürlich auf das Datum in gleicher Zeile und soll auch bei einer anderen Jahreszahl in A1 mit dem zugehörigen Datum zusammen bleiben.
Gebe ich derzeit z.B. als Jahr "2015" in A1 ein, verschiebt sich nur Spalte A. Spalte B mit den Messergebnissen bleibt stehen und eine Auswertung ist damit unmöglich
Gibt es eine Formel oder andere Möglichkeit um die Messergebnisse in B mit Spalte A zusammen zu verschieben?

Es geht hier um Excel 2010 mit BS Win10

Lösungsmöglichkeiten werden gerne angenommen und ausprobiert. ;-)

Gruß

Stenz

6 Antworten

0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

wenn du das Datum mit Formeln einfügst, dann müsstest du am Jahresende, bevor du das Jahresdatum änderst, die Daten des laufenden Jahres kopieren und als Werte wieder einfügen.

Andere Möglichkeit: Du lässt dir das Datum fest per Makro einfügen, wenn du etwas in Spalte B erfasst.
Das folgende Makro gehört in das VBA-Projekt des Arbeitsblattes, in das du die Eingaben machst:

Private Sub Worksheet_Change(ByVal Target As Range)

'Wenn keine Eingabe in Spalte B erfolgt, dann Makro verlassen
If Intersect(Target, Range("B:B")) Is Nothing Then Exit Sub

'ansonsten aktuelles Datum in Spalte A einfügen
ActiveSheet.Cells(Target.Row, 1) = Date

End Sub

Willst du z.B. das Datum vom nächsten Tag einfügen, musst du folgende Codezeile verwenden:
ActiveSheet.Cells(Target.Row, 1) = Date + 1


Gruß

M.O.
0 Punkte
Beantwortet von
Hallo M.O.,

danke erst mal dafür das du dich mit meinem Problem beschäftigst.
Habe jetzt erst mal ein wenig rumprobiert.

Die Version mit Formel und Werte einfügen am Jahresende funktioniert gut, erscheint ziemlich umständlich - aber wenns nicht anders geht...

Habe jetzt erstmals mit Hilfe deiner Angaben die VBA-Umgebung geöffnet und deinen Code eingefügt - bin totaler VBA-Neuling :-).
Der Code liefert mir den heutigen Datumseintrag korrekt in A wie gewünscht erst wenn in Spalte B ein Eintrag erfolgt.
Auch das Folgedatum +1 wird nach dem heutigen Tag richtig mit derzeit 17.09.2016 angezeigt. Das ist schon sehr gut!

Eine Zusatzbitte:
In Zeile 1 habe ich jetzt Überschriften.
Wie kann der Code so geändert werden das in A3 ein fester Bezug auf Zelle A2 (Beginn-Datum der Auswertung) genommen wird und ab A3 mit +1 weitergeführt wird?
Mit meinen kleinen Excel-Formelkenntnissen komm ich hier natürlich nicht weiter ;-)
Wäre super, wenn du nochmals helfen könntest.

Gruß

Stenz
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Stenz,

leider weiß ich momentan gerade nicht, was du willst. Wenn du mit Bezügen auf bestimmte Zellen arbeitest, hast du ja ggf. wieder dein eingangs geschildertes Problem.

Durch den Code wird ja automatisch ein Datum eingefügt, so dass eine Weiterführung eigentlich nicht notwendig ist, da bei jeder neuen Eingabe ja das aktuelle Datum eingefügt wird.

Natürlich könnte man auch per Code gleich die Daten für ein ganzes Jahr fest anlegen.

Gruß

M.O.
0 Punkte
Beantwortet von
Hallo M.O.

ich versuch's mal zu begründen:
Ich möchte auch ältere Messdaten in dieser Tabellenform auswerten um sie mit den derzeitigen zu vergleichen. Die liegen teilweise nur in analoger Form vor sodaß ich sie ohnehin neu händig eingeben muss.
Daher meine Idee des Datumbezugs auf eine Ausgangszelle.

Ich glaub jetzt aber, das eine Formatvorlage mit deiner Formel fürs aktuelle besser ist, die ich dann pro Jahr neu anlege.

Für die Alt-Messwerte muß ich dann wohl auf die Formellösung zurückgreifen und mir davon ebenfalls eine Vorlage erstellen.

Noch eine Code-Frage:
Kann der Code auch so erweitert werden, das zwischen letztem Eintrag (z.B. heute) und dem nächstem (z.B. am 15.10. des Jahres) auch mal ein variabler Zeitraum ohne Messungen berücksichtigt wird und danach wieder Messdaten eingetragen werden?

Auf jeden Fall mal vielen Dank für die bisherige Unterstützung

Es werden noch weiter Lösungsansätze angenommen ;-)

Gruß

Stenz
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Stenz,

sobald du etwas in Spalte B einträgst, wird in Spalte A das aktuelle Datum eingetragen. Dabei ist es völlig egal, in welcher Zeile der Spalte B du dich befindest. Du kannst also eine Eingabe in Zeile 5 machen, die nächste dann in Zeile 20. Das ist völlig egal. Das aktuelle Datum wird immer in der Zeile eingetragen, in der du in Spalte B etwas eingibst.

Für die älteren Daten würde ich einfach alle Daten eines Jahres in eine Tabelle schreiben (z.B. 01.01.2013 in Zelle A1 schreiben und dann soweit wie benötigt nach unten ziehen). Dann kann man die Meßdaten jeweils beim entsprechenden Tag eintragen ohne immer auch noch das Datum eingeben zu müssen.

Gruß

M.O.
0 Punkte
Beantwortet von
So werd ich's machen M.O.,

vielen Dank für deine kompetente Hilfe!

Es war mir nicht bewusst, das die Zeile für den Eintrag egal ist und nach ein paar Tagen das dann aktuelle Datum eingetragen wird ohne die vorigen zu löschen - VBA-Anfänger halt... :-)

Dein Code aus An1 und der Vorschlag aus An5 für die Altdaten (warum kam ich nicht selbst auf diese einfache Lösung?) haben meine Anfrage gelöst.

Noch ein schönes WE, auch allen andern supportlern,

wünscht

Stenz
...