Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1748to1752
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

Tabellenüberschriften aus Matrix

Tabellenüberschriften aus Matrix
29.03.2020 06:45:27
Moritz
Hallo zusammen
ich brauche einmal die Hilfe von euch VBA Experten.
Ich habe folgende Matrix:
Material 1 Material 2 Material 3
Lieferant 1 X X X
Lieferant 2 X X
Lieferant 3 X X
Lieferant 4 X X
Lieferant 5 X X
Lieferant 6 X
Lieferant 7 X X
Lieferant 8 X
Wenn die Material-Lieferanten-Kombination mit einem "X" markiert ist, dann möchte ich sie auf einem anderen Tabellenblatt als Tabellenüberschrift haben, d.h. Lieferant in einer Zeile und Material darunter. Die manuelle Lösung sehe dann wie folgt aus:
Supplier 1 Supplier 2 Supplier 4 Supplier 5 Supplier 7 Supplier 1 Supplier 3
Material 1 Material 1 Material 1 Material 1 Material 1 Material 2 Material 2
usw.
Jetzt meine Frage. Wie löse ich so was mit VBA, dass die nicht markierten Material-Lieferanten-Kombination übersprungen werden.
Vielen Dank für eure Hilfe!
Schöne Grüße
Moritz
https://www.herber.de/bbs/user/136193.xlsx

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenüberschriften aus Matrix
29.03.2020 07:48:11
ChrisL
Hi Moritz
Vielleicht hilft dir Power Query "entpivotieren"
https://www.youtube.com/watch?v=npzG-Br0GQs
Im Resultat bei den Werten (X/leer bzw. 1/0 bzw. WAHR/FALSCH) die null ausfiltern.
Bei Bedarf die ganze Tabelle einmal transponieren.
cu
Chris
AW: für Deine Beispieldatenstruktur wäre auch ...
29.03.2020 10:31:24
neopa
Hallo Moritz,
... alternativ zu einer VBA oder PQ-Lösung eine Formellösung möglich.
In C4:
=WENN(SPALTE(A4)&gtZÄHLENWENN(Ausgangssituation!$C:$E;"x");"";
WENN(SPALTE(A4)&lt=ZÄHLENWENN(Ausgangssituation!$C:$C;"x");INDEX(Ausgangssituation!3:3;3);
WENN(SPALTE(A4)&lt=ZÄHLENWENN(Ausgangssituation!$C:$D;"x");INDEX(Ausgangssituation!3:3;4);
INDEX(Ausgangssituation!3:3;5))))

dann in C3:
=WENN(C4="";"";INDEX(Ausgangssituation!$B:$B;
AGGREGAT(15;6;ZEILE(Ausgangssituation!B4:B12)/
MMULT((Ausgangssituation!$C4:$E12="x")*(Ausgangssituation!$C3:$E3=C4);{1;1;1});
ZÄHLENWENN($C4:C4;C4))))

und beide Formeln weit genug nach rechts ziehend kopieren
Gruß Werner
.. , - ...
Anzeige
AW: für Deine Beispieldatenstruktur wäre auch ...
29.03.2020 11:58:05
Moritz
Das funktioniert ja super! Jetzt muss ich mich nur noch hinter die Formel klemmen, um zu verstehen, was die Formel genau macht.
Vielen Dank für die schnelle Hilfe!
Schöne Grüße
Moritz
AW: bitteschön owT
29.03.2020 13:54:21
neopa
Gruß Werner
.. , - ...
AW: bitteschön owT
01.04.2020 11:29:34
Moritz
Ich habe nochmal eine Frage.
Ich möchte die Formeln jetzt anstatt für Spalten für Zeilen nutzen.
Die Formel für C4 in der Orginaldatei konnte ich umschreiben, aber bei der Formel für C3 bekomme ich leider nicht das gewünschte Resultat.
Ich habe nochmal eine Datei angehängt, in der Ihr meinen aktuellen Stand finden könnt.
Vielen Dank für eure Hilfe.
Schöne Grüße
Moritz
https://www.herber.de/bbs/user/136314.xlsx
Anzeige
AW: beide Formeln mit INDEX() und AGGREGAT() ...
01.04.2020 18:36:08
neopa
Hallo Moritz,
... damit verkürzt sich Deine angepasste Formel auf nur noch 1/3 Länge.
So:
Arbeitsblatt mit dem Namen 'Lösung'
 DE
4  
5Supplier 1Material 1
6Supplier 1Material 2
7Supplier 1Material 3
8Supplier 2Material 1
9Supplier 2Material 3
10Supplier 3Material 2
11Supplier 3Material 3
12Supplier 4Material 1
13Supplier 4Material 2
14Supplier 5Material 1
15Supplier 5Material 2
16Supplier 6Material 2
17Supplier 7Material 1
18Supplier 7Material 3
19Supplier 8Material 3
20  

ZelleFormel
D5=WENNFEHLER(INDEX(Ausgangssituation!B:B;KÜRZEN(AGGREGAT(15;6;(Ausgangssituation!C$4:E$99="x")*(ZEILE(B$4:B$99)+SPALTE(C4:E4)%)/(Ausgangssituation!C$4:E$99&gt0);ZEILE(D1));0));"")
E5=WENNFEHLER(INDEX(Ausgangssituation!$3:$3;AGGREGAT(15;6;SPALTE(C4:E4)/(Ausgangssituation!C$4:E$99="x")/(Ausgangssituation!B$4:B$99=D5);ZÄHLENWENN(D$5:D5;D5)));"")
Verwendete Systemkomponenten: [Windows (32-bit) NT 6.02] MS Excel 2010
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg

Gruß Werner
.. , - ...
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige