Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Aus 3 Spalten eine Matrix erstellen - brauche Hilfe

Aus 3 Spalten eine Matrix erstellen - brauche Hilfe
20.01.2020 16:10:22
Nilo
Hallo zusammen,
ich versuche gerade aus 3 Spalten eine Matrix zu erstellen, was auch klappt dank der Hilfe aus diesem Forum, aber Sie ist nur dann richtig wenn der Datensatz exakt die gleichen Einträge hat aus denen die Header für die Matrix gebildet werden.
Sind sie ungleich verschieben sich die Einträge in der Matrix.
Ich finde einfach nicht den richtigen Weg und bitte um Umbau bzw, Anpassung.
Wichtig: das benutzte Scipt kann ein paar Hunderttausend Zeilen ohne Überlauf verarbeiten, das wird auch so benötigt.
Eine vollwertige Testdatei siehe hier:
https://www.herber.de/bbs/user/134554.xlsm
Vielen Dank schonmal
BG
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Aus 3 Spalten eine Matrix erstellen - brauche Hilfe
20.01.2020 23:27:09
onur
"Matrix ausführen" ?
Erkläre doch mal, was du glaubst, was eine Matrix genau wäre und was du überhaupt erreichen willst.
...in etwa so
21.01.2020 06:54:21
Nilo
@Onur
Das passende äquivalent zum VBA in der Datei als Formel wäre:
=VERWEIS(2;1/($A$1:$A$200000&$B$1:$B$200000=$F2&G$1);$C:$C)
http://www.excelformeln.de/formeln.html?welcher=30
Eintragen in G2 nach unten und nach rechts ziehen
Dafür benötige ich eine VBA Lösung die schnell genug ist auch große
Tabellen quasi zu pivotisieren.
Danke nochmal
Anzeige
AW: Aus 3 Spalten eine Matrix erstellen - brauche Hilfe
21.01.2020 21:38:01
Piet
Hallo Nilo
mir ist aufgefallen das dein Code einwandfrei laeuft, aber da gibt es einige dumme kleine Fehler!!
Die Überschrift Spalte F bis AK stimmt NICHT mit der Namensliste im Nummernfeld 1111111 überein! Da ist am Ende ein Trick zuviel!! Die Überschrift müsste bei Bob enden, und nicht bei Trick. Im 1. Trick war noch ein Space angehangen, deshalb klappte die Formel bei mir nicht.
In der neuen Beispieldatei wurden diese Fehler korrigiert. Die alten Makros habe ich belassen, bis auf die Korrektur der Überschrift, da war ein Trick zuviel! Das Makro "MatrixMaker" wurde durch ein neues Makro ersetzt. Das ist völlig anders aufgebaut, und dürfte wesentlich schneller sein. Das neue Makro prüft vor dem kopieren ob die Namensliste gleich ist, und mit der Überschrift G bis Ak übereinstimmt. Wenn es da Fehler gibt bricht das Programm mit Fehlermelddung ab!
Bitte zuerst mal Originaldaten ins Beispiel kopieren und dort testen, denn ich kann nicht garantieren das es auf Anhieb 100% klappt. Bevor wir Originaldaten versemmeln bitte erst im Beispiel testen. Viel Spass beim testen.
https://www.herber.de/bbs/user/134604.xlsm
mfg Piet
Anzeige
AW: Aus 3 Spalten eine Matrix erstellen - brauche Hilfe
21.01.2020 21:47:06
Piet
Nachtrag
habe einen Befehl vergessen: - CutCopyMode abschalten. Letzte Zeile! Bitte im Beispiel korrigieren

z2 = 0  'z2 löschen ; ab hier Daten kopieren
'Kopieren der Werte als ganzen Block  (11111 zu 22222)
For i = 2 To lz6
.Range("C2").Resize(LSpa - 6, 1).Offset(z2, 0).Copy
.Range("G1").Offset(i - 1, 0).PasteSpecial xlPasteValues, Transpose:=True
z2 = z2 + LSpa - 6   'naechsten Namensblock festlegen
Next i
Application.CutCopyMode = False

Anzeige
AW: Aus 3 Spalten eine Matrix erstellen - brauche Hilfe
22.01.2020 16:28:46
Hajo_Zi
lasse den Fragesteller entscheiden ob offen.
Es ist heute nicht mehr üblich eine Rückmeldung zu geben und so ist der Beitrag über 6 Tage offen.
Das ist nur meine Meinung zu dem Thema.

AW: Aus 3 Spalten eine Matrix erstellen - brauche Hilfe
23.01.2020 08:13:01
Nilo
Hi zusammen,
mensch Hajo, doch es ist noch normal eine Rückmeldung zu geben, zumindest bei mir.
Da vorne und hinten aber noch andere Dinge wie Arbeit und Familie zu erledigen sind
fehlt es bei einigen gefühlt nur an etwas Geduld.
Ich komm ja auch nicht hier ins Forum rein und sage: "schnell macht, mal muss in 2 Stunden fertig sein!"
In diesem Sinne:
Piet, vielen Dank für Deinen Lösungsansatz der wunderbar funktioniert und mich gleichzeitig auhgeschlaut hat.
Beste Grüße
Nilo
Anzeige
AW: Danke für die nette Rückmeldung
23.01.2020 12:19:12
Piet
Hallo Nilo
Danke für die nette Rückmeldung, und deine persönlichen Worte an Hajo.
Mfg Piet
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Aus 3 Spalten eine Matrix erstellen


Schritt-für-Schritt-Anleitung

  1. Daten vorbereiten: Stelle sicher, dass deine Excel-Tabelle drei Spalten enthält. Die Daten sollten entsprechend der gewünschten Matrix angeordnet sein. Beispielweise könnte Spalte A die Kategorien, Spalte B die Subkategorien und Spalte C die Werte enthalten.

  2. VBA-Skript für Matrix erstellen: Verwende das folgende VBA-Skript, um eine Matrix aus den drei Spalten zu erstellen. Du kannst das Skript in einem neuen Modul in der VBA-Entwicklungsumgebung einfügen:

    Sub MatrixErstellen()
        Dim z2 As Long
        z2 = 0
        ' Kopieren der Werte als ganzen Block
        For i = 2 To lz6
            .Range("C2").Resize(LSpa - 6, 1).Offset(z2, 0).Copy
            .Range("G1").Offset(i - 1, 0).PasteSpecial xlPasteValues, Transpose:=True
            z2 = z2 + LSpa - 6
        Next i
        Application.CutCopyMode = False
    End Sub
  3. Formel zum Suchen von Werten: Du kannst auch die folgende Formel verwenden, um Werte in deiner Matrix zu finden. Trage diese Formel in die Zelle G2 ein und ziehe sie nach unten und nach rechts:

    =VERWEIS(2;1/($A$1:$A$200000&$B$1:$B$200000=$F2&G$1);$C:$C)

Häufige Fehler und Lösungen

  • Fehler bei Überschriften: Überprüfe, ob die Überschriften in den Spalten F bis AK mit der Namensliste übereinstimmen. Ein häufiger Fehler ist ein zusätzliches Leerzeichen oder falsche Enden der Überschrift. Korrigiere diese, um sicherzustellen, dass die Formel funktioniert.

  • Datensatz nicht übereinstimmend: Wenn die Einträge in den drei Spalten nicht gleich sind, kann sich die Matrix verschieben. Achte darauf, dass die Daten in den Spalten korrekt und einheitlich sind.


Alternative Methoden

  • Pivot-Tabellen: Eine weitere Möglichkeit, um eine Matrix zu erstellen, ist die Verwendung von Pivot-Tabellen. Diese Methode eignet sich hervorragend, wenn du aus den drei Spalten eine Vergleichsmatrix erstellen möchtest.

  • Power Query: Mit Power Query kannst du Daten aus mehreren Spalten zusammenführen und transformieren. Hierbei kannst du auch Filter anwenden und die Struktur der Daten anpassen.


Praktische Beispiele

Angenommen, du hast eine Tabelle mit den folgenden Daten:

Kategorie Subkategorie Wert
A 1 10
A 2 20
B 1 30
B 2 40

Mit dem obigen VBA-Skript kannst du schnell eine Matrix erstellen, die die Werte nach Kategorie und Subkategorie sortiert.


Tipps für Profis

  • Datensätze testen: Teste deine Formeln und Skripte immer zuerst mit einer Kopie deiner Daten, um unbeabsichtigte Änderungen zu vermeiden.

  • Benutzerdefinierte Funktionen: Überlege, ob du benutzerdefinierte Funktionen in VBA erstellen möchtest, um komplexere Berechnungen durchzuführen oder häufig wiederkehrende Aufgaben zu automatisieren.


FAQ: Häufige Fragen

1. Wie kann ich eine Matrix aus mehreren Spalten in Excel erstellen?
Du kannst VBA verwenden, um die Daten aus mehreren Spalten zu verarbeiten und in einer Matrix anzuzeigen. Alternativ kannst du auch eine Pivot-Tabelle erstellen.

2. Was ist der Unterschied zwischen einer Matrix und einer Tabelle in Excel?
Eine Matrix in Excel bezieht sich auf eine strukturierte Anordnung von Daten, oft in Form von Zeilen und Spalten, während eine Tabelle eine spezifische Datenstruktur ist, die zusätzliche Funktionen wie Filter und Sortierungen bietet.

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