Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
816to820
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
816to820
816to820
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Tabelle umbauen

Tabelle umbauen
07.11.2006 00:19:53
wiwistudent
Hallo,
hab ein (für mich) schier unüberwindbares Problem, welches sich (für euch) bestimmt als garkeins herausstellt.
Meine Tabelle sieht in etwa wie folgt aus:
-----------x1 x2 x3 x4...
y1----z1
-------z2
-------z3
-------...
y2----z1
-------z2
-------z3
------- ...
...---- ...
Um die Daten weiterverarbeiten zu können, benötige ich aber die Form:
-----------y1 y2 y3 y4...
z1 ----x1
-------x2
-------x3
-------...
z2 ----x1
------- x2
------- x3
------- ...
... ---- ...
Die Werte in der Tabelle sind alle verformelt und das wöllt ich auch gern so beibehalten.
Da die Tabelle recht groß is (x mit 10, y mit 15 und z mit über 800 ausprägungen)bitte ich euch um eine Lösung, die mir ewiges hin und her kopieren und/oder transponieren und damit hoffentlich viel Zeit erspart.
Vielen Dank im Voraus,
Steffen

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabelle umbauen
07.11.2006 01:38:11
Mustafa
Hallo Steffen,
eine kleine Beispieltabbele wäre in diesem Fall sehr hilfreich.
Rückmeldung wäre nett.
Grüße aus Köln.
AW: Tabelle umbauen
07.11.2006 11:35:18
wiwistudent
Hallo,
Hab hier mal ne kleine Beispieltabelle zusammengestellt, die hoffentlich mein Problem verdeutlicht
Alte Form auf Tabellenblatt 'Tabelle'
gesuchte Form auf Tabellenblatt 'neue Tabelle'
Hier der Link:
https://www.herber.de/bbs/user/37945.xls
Gruß
Steffen
AW: Tabelle umbauen
07.11.2006 15:38:13
ingUR
Hallo, Steffen,
was soll in die "neue Tabelle" übertragen werden
  1. die Formeln,
  2. die Werte oder
  3. die Bezüge?
Wenn weitere Umgruppierungen zu erwarten sind, dann wäre vielleicht das Erstellen einer Pivot-Tabelle das geeignete Instrument.
Wenn nur eine einmalige Neuorientierung der Elemente mit Bezügen auf die (berechneten) Zellenwerte der drei Quelltabellen gewünscht ist - es also keine weitere Berechungen in der bisherigen "SAmmeltabelle" gibt -, dann scheint es mir vorteilhaft, gleich auf die Zellen der Quelltabellen in einer VBA-Prozedur zu greifen und das Arbeitsblatt mit dem Namen "Tabelle" nicht zu verwenden.
Option Explicit
Const WS_ZIEL = "neue Tabelle"
Const WS_Q1 = "ROE"
Const WS_Q2 = "ROI"
Const WS_Q3 = "ROA"
Const MAXROW = 17 'letzte Zeile in ROx
Const MAXCOLUMN = "L" 'letzte Spalten in ROx
Sub TransForm()
Dim ws(3) As Worksheet
Dim maxR As Long, maxC As Integer
Dim r As Long, r0 As Long, r1 As Long, c As Integer
Dim wsQNamen As Variant
Dim strCFormel As String
maxR = MAXROW - 1
maxC = Asc(MAXCOLUMN) - 66
wsQNamen = Array(0, WS_Q1, WS_Q2, WS_Q3)
Set ws(0) = Worksheets(WS_ZIEL)
With ws(0)
.Select
.Cells.ClearContents
'Schreibe Kopfzeile
For c = 1 To 3
Set ws(c) = Worksheets(wsQNamen(c))
.Cells(1, 2 + c) = wsQNamen(c)
Next c
'Referenztabelle der Namen und Jahre ist wsQName(1) !
'Schleife über alle Titel
For r = 0 To maxR - 1
r0 = r * maxC + 1
.Cells(r0 + 1, 1) = ws(1).Cells(r + 2, 2) ' Schreibe Titel in Spalte 1
For r1 = 0 To maxC - 1 'Schleife über alle Spalten (Jahre)
.Cells(r0 + r1 + 1, 2) = ws(1).Cells(1, 3 + r1) 'schreibe Jahreszahl in Spalte 2
strCFormel = "!" & Chr(r1 + 67) & Trim(Str(r + 2))
For c = 1 To 3
.Cells(r0 + r1 + 1, 2 + c) = "=" & wsQNamen(c) & strCFormel
Next c
Next r1
Next r
End With
For c = 0 To 3
Set ws(c) = Nothing
Next c
End Sub
In dieser Standard-Modul-Prozedur sind die Konstanten (Const XYZ = ...) an Deine Auufgabe anzupassen, und es ist ggf. die Anweisung wsQNamen = Array(0, WS_Q1, WS_Q2, WS_Q3) zu werweitern, ween es mehr als drei Auswertungsspalten (z.B. ROx) gibt.
Gruß,
Uwe
Anzeige
AW: Tabelle umbauen
07.11.2006 15:52:23
IngGi
Hallo Steffen,
bezogen auf deine Beispielmappe:


Sub Tabelle_transformieren()
Dim rng As Range
Dim rngJahr As Range
Dim rngBlatt As Range
Dim Firma As String
With Sheets("neue Tabelle")
   For Each rngJahr In .Range("B2:B" & .Range("B65536").End(xlUp).Row)
      If rngJahr.Offset(0, -1) = "" Then
         Firma = rngJahr.Offset(0, -1).End(xlUp)
      Else
         Firma = rngJahr.Offset(0, -1)
      End If
      For Each rngBlatt In .Range(.Cells(1, 3), .Cells(1, .Range("C1") _
         .End(xlToRight).Column))
         With Sheets("Tabelle")
            Set rng = .Columns("A:A").Find(What:=rngBlatt)
            Set rng = .Range("B" & rng.Row & ":B" & rng.End(xlDown).Row - 1)
            Set rng = rng.Find(What:=Firma)
            Sheets("neue Tabelle").Cells(rngJahr.Row, rngBlatt.Column) _
               .FormulaLocal = _
               .Cells(rng.Row, .Range(.Cells(1, 3), _
               .Cells(1, .Range("C1").End(xlToRight).Column)).Column).FormulaLocal
         End With
      Next 'rngBlatt
   Next 'rngJahr
End With
End Sub


Gruß Ingolf
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige