Erweitertes Transponieren
#1
Hallo zusammen,

bin neu hier und weiß noch gar nicht so genau, wie ich mein Problem mit Worten erklären soll, aber ich versuche es mal Blush

Ich habe in Spalte 1 Werte, die sich in nicht wiederkehrender Weise verändern und in Spalte 2 Daten dazu.
Jetzt möchte ich in einer neuen Tabelle die Daten transponiert haben und es soll immer eine neue Zeile kommen, wenn sich der Wert aus Spalte 1 ändert.

So soll es später aussehen:

vorher                           nachher
1 JAN                            1 JAN FEB MÄR APR MAI 
1 FEB                            2 JAN FEB MÄR APR  
1 MÄR                            3 JAN FEB MÄR   
1 APR                            4 JAN FEB MÄR APR MAI JUN
1 MAI        
2 JAN        
2 FEB        
2 MÄR        
2 APR        
3 JAN        
3 FEB        
3 MÄR        
4 JAN        
4 FEB        
4 MÄR        
4 APR        
4 MAI        
4 JUN 

Bekommt man das mit einer Formel hin oder muss man da schon mit VBA ran?

Hab mit Google bisher nichts Passendes gefunden Huh

LG

Jacklaim
Top
#2
Hallo,

an Ermangelung von XL>07, hier was mit einer Matrixformel:

Arbeitsblatt mit dem Namen 'Tabelle1'
 ABCDEFGHI
11JAN JANFEBMÄRAPRMAI 
21FEB JANFEBMÄRAPR  
31MÄR JANFEBMÄR   
41APR JANFEBMÄRAPRMAIJUN
51MAI       
62JAN       
72FEB       
82MÄR       
92APR       
103JAN       
113FEB       
123MÄR       
134JAN       
144FEB       
154MÄR       
164APR       
174MAI       
184JUN       

ZelleFormel
D1{=WENNFEHLER(INDEX($B$1:$B$30;KKLEINSTE(WENN($A$1:$A$30=ZEILE(A1);ZEILE($A$1:$A$30));SPALTE(A1)));"")}
Achtung, Matrixformel enthalten!
Die geschweiften Klammern{} werden nicht eingegeben.
Verlassen Sie den Zelleneditor mit Strg+Shift + Enter, statt Enter alleine.
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg
VG
von René und seinen 3 Gehirnzellen

[-] Folgende(r) 1 Nutzer sagt Danke an silex1 für diesen Beitrag:
  • Rabe
Top
#3
Hallo silex1,

Danke für die schnelle Hilfe :28: 

Die Formel funktioniert!
Ich habe vergessen zu erwähnen, dass ich über 20000 Zeilen habe.
Mal schauen wann der Rechner fertig ist :17:

Die Vorzahlen hole ich mir separat über eine Pivot-Tabelle.

LG

Jacklaim
Top
#4
Hallo, ob die Formel schneller ist, weiß ich nicht, aber ohne CSE geht ab XL2010..:

PHP-Code:
=WENNFEHLER(INDEX($B$1:$B$18;AGGREGAT(15;6;ZEILE($A$1:$A$18)/($A$1:$A$18=ZEILE());SPALTE(A1)));""
Gruß Jörg
stolzes Mitglied im ----Excel-Verein
Freund einer excellenten Power Query-Abfrage
Top
#5
Hallo Jockel,

 ja Deine Formel geht auch :) 

LG

Jacklaim
Top
#6
(29.12.2017, 14:48)Jacklaim schrieb: Hallo Jockel,

 ja Deine Formel geht auch :) 

LG

Jacklaim

Hallo, das die (auch) geht, weiß ich (, weil getestet...)  ... aber ob sie schneller ist, weiß ich nicht...
Gruß Jörg
stolzes Mitglied im ----Excel-Verein
Freund einer excellenten Power Query-Abfrage
Top
#7
(29.12.2017, 14:04)Jacklaim schrieb: Ich habe vergessen zu erwähnen, dass ich über 20000 Zeilen habe.

Wenn der Bereich eingegrenzt wird (A1:A21000) , dann dürften dies heutige Rechner locker abarbeiten, in der Kaffeepause... :05:
VG
von René und seinen 3 Gehirnzellen

Top
#8
Hier eine schnellere Variante ohne Kaffeetrinken, die sich die Spalte A zunutze macht:

Deine beiden Spalten A:B ab A1
Hilfsspalte F: F2: =VERGLEICH(WAHR;INDEX(A$20001:INDEX(A:A;F1+2)>A$20000:INDEX(A:A;F1+1););)+F1
Ergebnisse G:Z: G2: =WENN(SPALTE(A1)<=$F2-$F1;INDEX($B:$B;SPALTE(A1)+$F1);"")

Falls es kein A:A gibt, und die Daten ab B1 stehen:
Hilfsspalte F: F2: {=MIN(WENN(INDEX(B:B;F1+1):B$20000="JAN";ZEILE(INDEX(B:B;F1+1):B$20000)))}
Ergebnisse G:Z: G2: =WENN(SPALTE(A1)<=$F3-$F2;INDEX($B:$B;SPALTE(A1)+$F1);"")
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste