Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1340to1344
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

fehlende Tage in Liste autmatisch füllen

fehlende Tage in Liste autmatisch füllen
04.12.2013 10:53:36
Julia
Hi!
wieder einmal benötige ich Eure Hilfe...
Ich habe eine Liste von Daten, die automatisch von einer Wetterstation ausgelesen wird. Es kommt manchmal vor, dass einzelne Tage nicht aufgezeichnet werden, und dann fehlt dieser Tag (oder mehrere Tage).
Ich muss diese Tabelle aber weiter bearbeiten und dazu benötige ich aber all 365 Tage (also vom 1.1.2013 - 31.12.2013).
Gibt es einen Weg bei den fehlenden Tagen eine Zeile einzufügen (Inhalt aller anderen Spalten, außer jener mit dem Datum sollen leer bleiben)?
Hier mal eine Beispieldatei: https://www.herber.de/bbs/user/88366.xlsx
Schonmal DANKE!!!!

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Bahnhof
04.12.2013 11:11:08
Klaus
Hallo Juila,
du wirfst in der Fragestellung + Musterdatei die Begriffe "Zeile" und "Spalte" durcheinander. Deine Musterdatei ist so abgespeckt, dass sich der Sinn nicht erschließt.
Ich denke, du möchtest ZEILEN einfügen wo die Datums-Werte nicht fortlaufend sind. Du schreibst aber explizit SPALTE A:R, so dass eine Wortverwechslung ausgeschlossen scheint? Allerdings sind A:R nicht 4 Spalten (wie du schreibst), sondern 18 ....
Stellst du die Frage bitte nochmal und präziser? Am besten machst du zwei Mustertabellen: einmal wie es "roh" aussieht und als zweite Tabelle wie es aussehen soll ...
Grüße,
Klaus M.vdT.

Anzeige
AW: Bahnhof
04.12.2013 11:28:05
Julia
Hi!
ohja.... :( alles vertauscht was nur geht... sorry dafür.
habe die Datei angepasst und 2 Tabellenblätter angelegt (wie schauts vorher aus und wie solls aussehen):

Die Datei https://www.herber.de/bbs/user/88368.xlsx wurde aus Datenschutzgründen gelöscht


es sollen in die Zeitreihe an den jeweiligen Stellen die fehlenden ZEILEN eingefügt werden (so wie du beschreibst!) und das fehlende Datum in der Spalte A eingefügt werden. Alle anderen Spalten sollen leer bleiben.
Am Ende soll es eine vollständige Tagesliste eines Jahres ergeben.
Danke!!!
LG
Julia

Anzeige
Na, das ist doch nicht schwer zu verstehen, ...
04.12.2013 11:32:03
Luc:-?
Klaus;
eigentl nur ein Freudscher Verschreiber - Julia hat schon an die Spalten A:R gedacht als sie erst Zeilen schreiben wollte.
Ich kenne das, Julia;
(eine Tochter hat so etwas auch mal ausgewertet) in solchen Aufzeichnungen fehlt öfter mal was, besonders, wenn die Stationen manuell betrieben wdn und der Meteorologe in Oimjakon bei -70°C, Schneesturm und 4m Schneehöhe nicht zum Ablesen vor die Hütte konnte oder sich was zugezogen hatte o.s.ä. Das ist ganz normal, denn auch Automaten können mal 'ne Störung haben oder die Übertragung klappt nicht oder Papier ist alle…
Lösung(en):
1. Lege eine neue Liste mit allen Tagen an und hole dir die Daten aus der alten per SVERWEIS oder INDEX und VERGLEICH. Fehlende Tage bleiben leer, wenn du außerdem WENNFEHLER verwendest.
2. Liste mit VBA-Pgm auf Tageslücken untersuchen und im Ereignisfall entsprd jeweils Leerzeilen einfügen. Klaus schreibt dir so etwas sicher gern, wenn seine Zeit es zulässt. ;-)
Gruß Luc :-?

Anzeige
AW: Na, das ist doch nicht schwer zu verstehen, ...
04.12.2013 11:41:23
Julia
:)
also dabei würde ich noch immer hilfe brauchen... SVerweis, Index und co sind nicht meine stärke :(
aber schonmal gut zu wissen dass es eine lösung gibt!
habe auhc nix gegen VBA lösung!
Danke, ihr seit echt super, wüsste oft nicht was ohne dieses Forum tun!
GLg

AW: Na, das ist doch nicht schwer zu verstehen, ...
04.12.2013 11:59:35
UweD
Hallo
über Sverweis....
- Startdatum in A2
- Formel in A3 und nach untenkopieren bis Zeile 366
- Formel in B2 und nach rechts und nach unten kopieren.
Tabelle2
 ABC
1TagWert 1Wert 2
201.01.2013   
302.01.201321
403.01.201365
504.01.201355
605.01.2013263
706.01.201344
807.01.201323
908.01.2013   
1009.01.2013   
1110.01.2013   

verwendete Formeln
Zelle Formel Bereich
B2 =WENNFEHLER(SVERWEIS($A2;'Datei aus Import'!$A:$Q;SPALTE();0);"") 
C2 =WENNFEHLER(SVERWEIS($A2;'Datei aus Import'!$A:$Q;SPALTE();0);"") 
A3 =A2+1 

Tabellendarstellung in Foren Version 5.49


Gruß UweD

Anzeige
SPALTE()
04.12.2013 12:41:40
Klaus
Hallo UweD,
statt SPALTE() würd ich hier SPALTE(B$1) nutzen. Macht das gleiche, funktioniert aber auch in anderen Spalten als B:Q!
Grüße,
Klaus M.vdT.

AW: Bahnhof
04.12.2013 11:38:14
Julia
Hi!
ohja.... :( alles vertauscht was nur geht... sorry dafür.
habe die Datei angepasst und 2 Tabellenblätter angelegt (wie schauts vorher aus und wie solls aussehen):

Die Datei https://www.herber.de/bbs/user/88368.xlsx wurde aus Datenschutzgründen gelöscht


es sollen in die Zeitreihe an den jeweiligen Stellen die fehlenden ZEILEN eingefügt werden (so wie du beschreibst!) und das fehlende Datum in der Spalte A eingefügt werden. Alle anderen Spalten sollen leer bleiben.
Am Ende soll es eine vollständige Tagesliste eines Jahres ergeben.
Danke!!!
LG
Julia

Anzeige
Formellösung
04.12.2013 12:00:49
Klaus
Hallo Julia,
hier mal fix eine Formellösung:
https://www.herber.de/bbs/user/88369.xlsx
Die Formel ist nach unten und rechts kopierbar.
Per VBA würd ich es ... genauso machen :-) sprich, die Datums und Formeln per VBA schreiben (und dann gegebenenfalls durch Werte ersetzen). Scheint mir weniger aufwendig, als Zeile für Zeile die Datums zu vergleichen und dann Zeilen einzufügen.
Grüße,
Klaus M.vdT.

AW: Bahnhof
04.12.2013 12:01:06
Rudi
Hallo,
Sub Julia()
Dim i As Long, j As Long, oDic As Object, arrOut(), lColumns As Long
Dim wksImport As Worksheet
Dim arrItems
Set oDic = CreateObject("scripting.dictionary")
Set wksImport = Worksheets("Datei aus Import")
lColumns = wksImport.Cells(1, 1).CurrentRegion.Columns.Count
oDic(0) = wksImport.Cells(1, 1).Resize(, lColumns)
For i = DateSerial(Year([a2]), 1, 1) To DateSerial(Year([a2]), 12, 31)
If Application.CountIf(wksImport.Columns(1), i) Then
oDic(i) = wksImport.Cells(Application.Match(i, wksImport.Columns(1), 0), 1).Resize(,  _
lColumns)
Else
oDic(i) = CDate(i)
End If
Next
arrItems = oDic.items
ReDim arrOut(1 To oDic.Count, 1 To lColumns)
For i = 1 To oDic.Count
If IsArray(arrItems(i - 1)) Then
For j = 1 To lColumns
arrOut(i, j) = arrItems(i - 1)(1, j)
Next
Else
arrOut(i, 1) = arrItems(i - 1)
End If
Next
Worksheets.Add.Cells(1, 1).Resize(oDic.Count, lColumns) = arrOut
End Sub

Gruß
Rudi

Anzeige
He, wusst ich's doch! Ging doch fix! ;-) owT
04.12.2013 12:05:45
Luc:-?
:-?

DANKE!
05.12.2013 08:17:53
Julia
Hi Klaus, hi Rudi (hi Luc)!
Danke euch vielmals!!!! habt mir rießig geholfen :) funktioniert perfekt (sowohl Formel als auch Marko)
wünsche schonmal ein schönes Wochenende!
LG
Julia
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige