Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Matrix zurückverwandeln

Forumthread: Matrix zurückverwandeln

Matrix zurückverwandeln
16.07.2003 12:39:16
pascal aregger
Liebe Excel Freunde!
Ich habe folgendes Problem:
Ich habe im Excel eine Budget-Datei auf Kostenstellen-Ebene, welche in Matrix-Form dargestellt ist. Sie basiert nicht auf einem Pivot! Diese sieht folgendermassen aus:
KST: 000100 000200 000400 000401 etc
KTO:
3000-0 5'000.- 2'000.- 1'500.- 4'000.-
3100-0 2'000.- 3'500.- 1'000.- 8'000.-
3200-0 3'500.- 2'500.- 6'000.- 7'000.-
etc..
Um die Daten nun in unsere Buchhaltungs-Software einzusaugen, wird folgendes Format verlangt:
KTO KST Betrag
3000-0 000100 5'000.-
3000-0 000200 2'000.-
3000-0 000400 1'500.-
3000-0 000401 4'000.-
3100-0 000100 2'000.-
3100-0 000200 3'500.-
3100-0 000400 1'000.-
3100-0 000401 8'000.-
3200-0 000100 3'500.-
3200-0 000200 2'500.-
3200-0 000400 6'000.-
3200-0 000401 7'000.-
Wie bringe ich nun die Matrix am einfachsten in die gewünschte Form?
Vielen Dank für Eure Hilfe!
Pascal
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Matrix reloaded
16.07.2003 13:01:12
xXx
Hallo,
wie ich das sehe, fangen deine Konten in A2 an und die Kst in B1. Mit einer verschachtelten Schleife ist das einfach zu lösen.
Deine Urdaten müssen auf Blatt1 stehen und es muss ein leeres Blatt2 da sein.Die Werte für intLeZeile und intLeSpalte musst du dir anpassen. Für Automatik hatte ich gerade keinen Sinn.
In ein Modul:

Sub Matrix_reloaded()
Dim intSpalte As Integer, intleSpalte As Integer, _
intZeile As Integer, intLeZeile As Integer, intZielZeile As Integer, _
wksQuelle As Worksheet, wksZiel As Worksheet
Set wksQuelle = Sheets(1)
Set wksZiel = Sheets(2)
intleSpalte = 5
intLeZeile = 20
intZielZeile = 2
For intZeile = 2 To intLeZeile
For intSpalte = 2 To intleSpalte
wksZiel.Cells(intZielZeile, 1) = wksQuelle.Cells(intZeile, 1)
wksZiel.Cells(intZielZeile, 2) = wksQuelle.Cells(1, intSpalte)
wksZiel.Cells(intZielZeile, 3) = wksQuelle.Cells(intZeile, intSpalte)
intZielZeile = intZielZeile + 1
Next intSpalte
Next intZeile
End Sub

Gruß aus'm Pott
Udo
http://www.excelerator.de

Anzeige
AW: Matrix zurückverwandeln - mit INDIREKT
16.07.2003 12:59:39
Boris
Hi Pascal,
deine Matrix: A1:E1000.
In A2 abwärts die Konten, ab B1 nach rechts die Kostenstellen.
Dann in irgendeine Zelle diese Formel:
=INDIREKT("A"&AUFRUNDEN(ZEILEN($1:5)/4;))
In die rechts benachbarte Zelle diese Formel:
=INDIREKT("Z1S"&REST(ZEILEN($1:4);4)+2;0)
Und wieder die rechte Nachbarzelle diese Formel:
=INDIREKT("Z"&AUFRUNDEN(ZEILEN($1:5)/4;)&"S"&REST(ZEILEN($1:4);4)+2;0)
Alle 3 Formeln einfach runterkopieren.
Die Lösung bezieht sich genau auf den von mir beschriebenen Tabellenaufbau.
Geht vieleicht noch einfacher, aber so geht´s zumindest.
Grüße Boris

Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige