2017-02-18 5 views
0

Angenommen, wir zwei Spalten mit einer Million Zeilen wie diese:Wie Transponieren Spalten in Zeilen (mit Unterbrechungen) in Excel?

1

Was ist die richtige Formel oder VBA einer andere angeordnete Tabelle wie folgt zu machen?

2

+0

Was haben Sie versucht? Beispiele würden anderen helfen, Dinge zu vermeiden, die nicht funktionieren. Eine Sache, die mir in den Sinn kommt, ist "Sind alle Schlüsselwörter in Rot?" Wenn ja, dann suchen Sie vielleicht zwischen den Stichwörtern basierend auf Farbe. Wenn sie nicht rot sind, gibt es dann einen "Schlüssel" oder eine Liste der Schlüsselwörter? –

+0

Danke für Ihren Rat. Die roten Texte waren nur deshalb, um mehr Aufmerksamkeit zu schenken. Ich habe pix aufgrund Ihrer Bedenken bearbeitet. Wir müssen nur jeden Satz von Daten zu neben transponieren. – Sushiant

+0

Zwei Fragen. Gibt es eine bekannte Grenze für die Anzahl der zusätzlichen Spalten, die Sie erstellen müssen? Und benötigen Sie eine reine Excel-Antwort oder wäre eine VBA-Lösung akzeptabel? – xarxziux

Antwort

0

Für eine reine Excel-Lösung dies versuchen.

Zuerst müssen Sie eine Helper-Spalte hinzufügen. Dies liefert nur TRUE für eine Kopfzeile oder andernfalls FALSE. Dies ist nicht strikt notwendig, aber es wird den Rest der Formeln ein wenig einfacher machen. In dem Proben Sie oben angegebenen, geben Sie diese in Zelle C1:

=IF(A1=B1,TRUE,FALSE) 

Geben Sie nun diese Zelle D1:

=IF(AND(C1,NOT(C2)),A2,"") 

Was dies prüfen ist, wenn die aktuelle Zeile ein Header ist aber nicht die nächste und kopiert die erste Zelle der nächsten Zeile, wenn dies der Fall ist, oder gibt eine leere Zeichenfolge zurück, wenn dies nicht der Fall ist.

Jede nachfolgende Zelle folgt demselben Muster, überprüft jedoch zuerst, ob die vorherige Zelle leer ist. Geben Sie diese Funktion in Zelle E1 ein:

=IF(D1="","",IF(AND(C1,NOT(C3)),A3,"")) 

Jetzt müssen Sie nur dieses Muster für weitere 10 Zellen kopieren. Leider funktioniert das Kopieren und Einfügen nicht, da Sie A3 und C3 nach oben und Copy-and-Paste mit Inkrementen nach rechts inkrementieren müssen. Also, von E1, erhalten wir:

F1: =IF(E1="","",IF(AND(C1,NOT(C4)),A4,"")) 
G1: =IF(F1="","",IF(AND(C1,NOT(C5)),A5,"")) 
. 
. 
. 
O1: =IF(N1="","",IF(AND(C1,NOT(C13)),A13,"")) 

nun diese Zellen an der Unterseite des Datensatzes kopieren und Sie sollten die Ergebnisse sind Sie nach bekommen. Hier ein Beispiel:

Completed example

Beachten Sie die zusätzliche TRUE in Zelle C21, so dass die letzte Berechnung korrekt beendet.

Wenn Sie jedoch wirklich eine Million Zeilen in Ihrem Datensatz haben, würde ich die Weisheit der Verwendung von Excel überhaupt in Frage stellen. Abhängig von Ihren Umständen und Ressourcen können Sie die Daten besser in einer Textdatei speichern und mit einer geeigneten Skriptsprache verarbeiten.

Verwandte Themen