Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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
Antworten 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
Antworten 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
Antworten 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
ich muss mich erst wieder ganz langsam heran robben. Also bitte ich um Nachsicht

"Wer immer tut, was er schon kann, bleibt immer das, was er schon ist." - Henry Ford
Antworten Top
#5
Hallo Jockel,

 ja Deine Formel geht auch :) 

LG

Jacklaim
Antworten Top
#6
(29.12.2017, 13: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
ich muss mich erst wieder ganz langsam heran robben. Also bitte ich um Nachsicht

"Wer immer tut, was er schon kann, bleibt immer das, was er schon ist." - Henry Ford
Antworten Top
#7
(29.12.2017, 13: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

Antworten 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);"")
Antworten Top


Gehe zu:


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