Jahr für Jahr automatisch nebeneinader kopieren?
#1
Hallo liebe Forenmitglieder,

Mein Name ist Seppl und ich versuche schon seit längerer Zeit eine einfache Lösung zu diesem Problem zu finden, aber ich komm einfach nicht drauf. Bitte helft mir:

Also:

Spalte A     Spalte B
2000             25
2000             30
2000             -2
.
.
.
.
2010            15

In Spalte A sind Datumswerte über einen längeren Zeitraum (2000-2010).
In Spalte B sind Temperaturwerte für jeden Tag über 10 Jahre eingetragen.

Nun möchte ich, dass Excel mir diese neu anordnet und zwar so:

Spalte A   Spalte B  Spalte C  Spalte D Spalte E
2000          25           2001         15          2002
2000          30           2001          10         2002
2000          -2            2001          3           2002

Gibt es eine einfache Lösung dafür?

Für Hilfe bin ich sehr, sehr dankbar
Top
#2
Hallo,

so könntest du das zum Beispiel machen:


Tabelle1
ABCDEFGHIJK
12000120001200142002620037
220002200022001520038
3200032000320039
420014200310
520015
620026
720037
820038
920039
10200310

verwendete Formeln
Zelle Formel Bereich N/A
D2: D5,F2:F5,H2:H5,J2:J5=WENN(E2<>"";D$1;"")
E1:E5,G1:G5,I1:I5,K1:K5=WENNFEHLER(INDEX($B$1:$B$10;AGGREGAT(15;6;ZEILE($B$1:$B$10)/($A$1:$A$10=D$1);ZEILE(A1)));"")
Excel-Inn.de
Hajo-Excel.de
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 19.15 einschl. 64 Bit

[-] Folgende(r) 1 Nutzer sagt Danke an Luffy für diesen Beitrag:
  • Seppl
Top
#3
Hallo Seppl,

per VBA so z.B.:
Sub JahreInSpalten()
Dim lngJahr As Long, lngTag As Long
Dim lngS As Long, lngZ As Long
Dim varQuelle As Variant
Dim varZiel(1 To 368, 1 To 22) As Variant
varQuelle = Range("A1").CurrentRegion.Value
For lngJahr = 2000 To 2010
lngS = lngS + 2
lngZ = 2
varZiel(1, lngS - 1) = lngJahr
varZiel(1, lngS) = "Temperatur"
For lngTag = 3 To UBound(varQuelle, 1)
If Year(varQuelle(lngTag, 1)) = lngJahr Then
lngZ = lngZ + 1
varZiel(lngZ, lngS - 1) = varQuelle(lngTag, 1)
varZiel(lngZ, lngS) = varQuelle(lngTag, 2)
End If
Next lngTag
Next lngJahr
Range("D1").Resize(UBound(varZiel, 1), UBound(varZiel, 2)).Value = varZiel
End Sub
Gruß Uwe
Top
#4
Wow Danke Luffy!
Das wird mir viel Zeit ersparen! Danke!!!

Danke auch an Kuwi, diese Methode werde ich später ausprobieren.

Es funktioniert, obwohl ich nicht verstehe warum :19: 

Es funktioniert nicht wenn ich mit den Daten in Zeile 3 starte, wieso?
(Ich muss in Zeile 3 starten um die Spalten zu beschriften, ansonsten verlier ich die Übersicht)
Top
#5
Hallo,

für Zeile 3 (E3)

Code:
=WENNFEHLER(INDEX($B$1:$B$12;AGGREGAT(15;6;ZEILE($B$1:$B$12)/($A$1:$A$12=D$3);ZEILE(A1)));"")

Kannst du einfach dann auch G / H / K ... kopieren
[-] Folgende(r) 1 Nutzer sagt Danke an Luffy für diesen Beitrag:
  • Seppl
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste