Microsoft Excel

Herbers Excel/VBA-Archiv

Transponieren

Betrifft: Transponieren von: Emanuel
Geschrieben am: 07.09.2020 14:04:52

Hallo zusammen,

ich habe ein Beispiel zu meiner Frage angehängt.

Ich möchte Unternehmensinfos, die wie in Spalte A gelistet sind, in die Form von Spalte J bekommen, ohne jedes Mal zu kopieren, einzufügen und zu transformieren. Spalte A ist in Realität sehr lang, also sehr viele Unternehmen enthalten.

Gibt es hierzu vielleicht eine gangbare Lösung?

Vielen Dank im Voraus und viele Grüße
Emanuel

https://www.herber.de/bbs/user/140095.xlsx

Betrifft: AW: Lösungen gibt es immr ...
von: neopa C
Geschrieben am: 07.09.2020 14:10:36

Hallo Emanuel

... bei sehr vielen Datensätzen, käme z.B. eine Lösung mit der Funktion "Daten abrufen und transformieren" in Frage.

Wenn die Datenstruktur so einheitlich ist wie aufgezeigt, also immer 5 Datenzellen dann zwei Leerzellen auch mit einer Formellösung. Letztere käme auch noch in Frage wenn in Spalte A nicht viel mehr als ein paar hundert Datenzellen stehen. Was ist denn für Dich "sher lang"?

Gruß Werner
.. , - ...

Betrifft: AW: sorry, meinte natürlich: hierfür immer owT
von: neopa C
Geschrieben am: 07.09.2020 14:12:38

Gruß Werner
.. , - ...

Betrifft: AW: Lösungen gibt es immr ...
von: Emanuel
Geschrieben am: 07.09.2020 14:13:09

Hallo Werner,

danke für deine Rückmeldung!

Die Liste wird ca. 1.500 Zeilen lang sein.

Viele Grüße
Emanuel

Betrifft: AW: offen ist noch, ob Struktur einheitlich? ow
von: neopa C
Geschrieben am: 07.09.2020 14:34:28

Gruß Werner
.. , - ...

Betrifft: AW: Transponieren
von: UweD
Geschrieben am: 07.09.2020 14:30:42

Hallo


Formel in I1: =INDEX($A:$A;GANZZAHL(ZEILE()/7)+(7*(ZEILE()-1))+SPALTE(A1))

nach rechts und runter kopieren

LG UweD

Betrifft: AW: Transponieren
von: Emanuel
Geschrieben am: 07.09.2020 14:41:01

Großartig! Das hat funktioniert. Vielen Dank!

Betrifft: Fehler
von: UweD
Geschrieben am: 07.09.2020 14:50:17

Jede 7 Zeile war falsch.


So gehts aber

=INDEX($A:$A;(ZEILE()-1)*7+SPALTE(A1))
LG UweD

Betrifft: AW: Fehler
von: Emanuel
Geschrieben am: 07.09.2020 15:11:32

Vielen Dank!

Ich habe nun eine bessere Quelldatensammlung gefunden, die aber noch intensiver zu bearbeiten wäre. :(

Funktioniert das auch irgendwie (siehe Datei anbei)?

A1 muss in E1
A2 soll weg
A3 muss in F1
A4-A6 soll so aussehen: A4, (Leerzeichen) A5 (Leerzeichen) A6 und soll so in G1
B4 soll in H1
B5 soll weg
C4 soll weg


Das ganze geht dann so weiter für jedes weitere Unternehmen siehe A7

Vielen Dank im Voraus und liebe Grüße
Emanuel

https://www.herber.de/bbs/user/140097.xlsx

Betrifft: AW: einheitliche Struktur vorausgesetzt, dann ...
von: neopa C
Geschrieben am: 07.09.2020 15:33:57

Hallo Emanuel,

... folgende Formeln einfach nach unten ziehend kopieren:

Arbeitsblatt mit dem Namen 'Tabelle3'
 ABCDEFGH
1180 Maiden Lane Beteiligungs GmbH   180 Maiden Lane Beteiligungs GmbHBeteiligungsgesellschaftenKeferloh 1A, 85630  GrasbrunnTel: /
2Branchen:    3d-e-motionGrafikerBretonischer Ring 9, 85630  GrasbrunnTel: 089/43578225
3Beteiligungsgesellschaften   weiter so   
4Keferloh 1ATel: / weiter     
585630 Entfernung: 0,00 km      
6Grasbrunn       
73d-e-motion       
8Branchen:        
9Grafiker       
10Bretonischer Ring 9Tel: 089/43578225 weiter     
1185630 Entfernung: 0,00 km      
12Grasbrunn       
13weiter so       
14        

ZelleFormel
E1=INDEX($A:$A;(ZEILE()-1)*6+SPALTE(A1))&""
F1=INDEX($A:$A;(ZEILE()-1)*6+3)&""
G1=WENN(F1="";"";INDEX($A:$A;(ZEILE()-1)*6+4)&", "&INDEX($A:$A;(ZEILE()-1)*6+5)&" "&INDEX($A:$A;(ZEILE()-1)*6+6))
H1=INDEX($B:$B;(ZEILE()-1)*6+4)&""
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
.. , - ...

Betrifft: AW: Fehler
von: UweD
Geschrieben am: 07.09.2020 15:46:05

dann sind es 4 unterschiedliche Formeln je Zeile, die du aber ach alle zusammen nach unten kopieren kannst

E1: =INDEX($A:$A;(ZEILE()-1)*6+1)
F1: =INDEX($A:$A;(ZEILE()-1)*6+3)
G1: =INDEX($A:$A;(ZEILE()-1)*6+4)&", "&INDEX($A:$A;(ZEILE()-1)*6+5)&" "&INDEX($A:$A;(ZEILE()-1)*6+6)
H1: =INDEX($B:$B;(ZEILE()-1)*6+4)

LG UweD

Betrifft: AW: Fehler
von: Emanuel
Geschrieben am: 07.09.2020 20:47:46

Ihr seid toll! Hat wieder super geklappt! Dankeschön!

Betrifft: Danke für die Rückmeldung (owT)
von: UweD
Geschrieben am: 08.09.2020 08:27:12



Betrifft: AW: Transponieren
von: JoWE
Geschrieben am: 07.09.2020 17:48:34

Hallo Emmanuel,

oder mit einem Makro?
Sub daten_liste()
    Dim ze1 As Long, ze2 As Long
    For ze1 = 1 To Cells(Rows.Count, 1).End(xlUp).Row Step 6
        ze2 = ze2 + 1
        Cells(ze2, 5) = Cells(ze1, 1)
        Cells(ze2, 6) = Cells(ze1 + 2, 1)
        Cells(ze2, 7) = Cells(ze1 + 3, 1) & _
         ", " & Cells(ze1 + 4, 1) & " " & Cells(ze1 + 5, 1)
        Cells(ze2, 8) = Cells(ze1 + 3, 2)
    Next
End Sub

Gruß
Jochen

Betrifft: AW: Transponieren
von: JoWE
Geschrieben am: 07.09.2020 17:53:50

Hallo Emmanuel,

oder vielleicht mit einem Makro?
Sub daten_liste()
    Dim ze1 As Long, ze2 As Long
    For ze1 = 1 To Cells(Rows.Count, 1).End(xlUp).Row Step 6
        ze2 = ze2 + 1
        Cells(ze2, 5) = Cells(ze1, 1)
        Cells(ze2, 6) = Cells(ze1 + 2, 1)
        Cells(ze2, 7) = Cells(ze1 + 3, 1) & _
         ", " & Cells(ze1 + 4, 1) & " " & Cells(ze1 + 5, 1)
        Cells(ze2, 8) = Cells(ze1 + 3, 2)
    Next
End Sub

Gruß
Jochen