Ich habe eine Matrix-Stil-Tabelle in Excel, wobei B1: Z1 Spaltenüberschriften und A2: A99 Zeilenüberschriften sind. Ich möchte diese Tabelle in eine Tabelle mit 3 Spalten (Spaltenüberschrift, Zeilenüberschrift, Zellenwert) konvertieren. Es spielt keine Rolle, in welcher Reihenfolge sich die neue Tabelle befindet.
A B C D A B C A B C
1 H1 H2 H3 1 H1 R1 V1 1 H1 R1 V1
2 R1 V1 V2 V3 => 2 H1 R2 V4 or 2 H2 R1 V2
3 R2 V4 V5 V6 3 H1 R3 V7 3 H3 R1 V3
4 R3 V7 V8 V9 4 H2 R1 V2 4 H1 R2 V4
5 H2 R2 V5 5 H2 R2 V5
6 H2 R3 V8 6 H3 R2 V6
7 H3 R1 V3 7 H1 R3 V7
8 H3 R2 V6 8 H2 R3 V8
9 H3 R3 V9 9 H3 R3 V8
Ich habe mit der OFFSET-Funktion herumgespielt, um die gesamte Tabelle zu erstellen, aber ich habe das Gefühl, dass eine Kombination aus TRANSPOSE und V / HLOOKUP erforderlich ist.
Vielen Dank
BEARBEITEN
Ich habe es geschafft, die richtigen Formeln zu finden. Wenn sich die Daten in Sheet1 wie in meinem obigen Beispiel befinden, gehen die Formeln in Sheet2:
[A1] =IF(ROW() <= COUNTA(Sheet1!$B$1:$Z$1)*COUNTA(Sheet1!$A$2:$A$99), OFFSET(Sheet1!$A$1,0,IF(MOD(ROW(),COUNTA(Sheet1!$B$1:$Z$1))=0,COUNTA(Sheet1!$B$1:$Z$1),MOD(ROW(),COUNTA(Sheet1!$B$1:$Z$1)))),"")
[B1] =IF(ROW() <= COUNTA(Sheet1!$B$1:$Z$1)*COUNTA(Sheet1!$A$2:$A$99),OFFSET(Sheet1!$A$1,IF(MOD(ROW(),COUNTA(Sheet1!$A$2:$A$99))=0,COUNTA(Sheet1!$A$2:$A$99),MOD(ROW(),COUNTA(Sheet1!$A$2:$A$99))),0),"")
[C1] =IF(ROW() <= COUNTA(Sheet1!$B$1:$Z$1)*COUNTA(Sheet1!$A$2:$A$99),OFFSET(Sheet1!$A$1,IF(MOD(ROW(),COUNTA(Sheet1!$A$2:$A$99))=0,COUNTA(Sheet1!$A$2:$A$99),MOD(ROW(),COUNTA(Sheet1!$A$2:$A$99))),IF(MOD(ROW(),COUNTA(Sheet1!$B$1:$Z$1))=0,COUNTA(Sheet1!$B$1:$Z$1),MOD(ROW(),COUNTA(Sheet1!$B$1:$Z$1)))),"")
Die Formeln sind auf B1: Z1 für die Überschriften und A2: A99 für die Zeilen beschränkt (diese können bei Bedarf auf ihre Maximalwerte erhöht werden). Die Formel COUNTA () gibt die Anzahl der Zellen zurück, die tatsächlich Werte enthalten, wodurch die Anzahl der zurückgegebenen Zeilen auf Überschriften * Zeilen begrenzt wird. Andernfalls könnten die Formeln aufgrund der MOD-Funktion unendlich weitergehen.
quelle
Ich habe vor ein paar Wochen bei StackOverflow eine etwas allgemeinere Version der von @Dick Kusleika bereitgestellten Lösung gesehen: Konvertieren von Zeilen mit Datenspalten in Spalten mit mehreren Zeilen in Excel 2007 . Es scheint keine Verweise auf einzelne Zeilen zu geben (
ROW()
stattdessen using ), erfordert jedoch, dass die Anzahl der Spalten fest codiert ist.quelle