Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Liste untereinander > nebeneinander

Liste untereinander > nebeneinander
17.12.2014 11:38:06
Axel
Ich habe folgende Daten in Excel:
##001
Artikel1
Artikel2
Artikel3
++002
Artikel4
Artikel5
Artikel6
++003
Artikel7
Artikel8
Artikel9
Und brauche sie in dieser Form:
##001 Artikel1 Artikel2 Artikel3
++002 Artikel4 Artikel5 Artikel6
++003 Artikel7 Artikel8 Artikel9
Die Zeichen ## und ++ sind eindeutig vorhanden, also nicht in den Artikeln.
Wie kann ich das machen?

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Liste untereinander > nebeneinander
17.12.2014 11:56:21
Tom
Was bedeuten die Zeichen # und + ? Platzhalter?
Davon ausgehend, dass Deine Daten untereinander in Spalte A stehen, würde ich folgendes machen:
In Zelle B1 folgende Formel eingeben: =A1 & " " & A2 & " " & A3 & " " & A4
In Zelle B2 dann: =A5 & " " & A6 & " " & A7 & " " & A8
usw. ;-)

Anzeige
AW: Liste untereinander > nebeneinander
17.12.2014 12:03:45
Daniel
Hi
annahme die Daten stehen ohne Überschrift in Spalte A ab Zeile 1.
Dann so vorghehen:
1. Folgende Formel in B1 und bis ans Tabellenende runterziehen:
=A1&";"&Wenn(oder(Links(A2;1)="#";Links(A2;1)="+";Links(A2;1)="");"";B2)

2. Spalte B kopieren und als Text einfügen
3. Spalte B soriteren, jetzt sollten oben die Zeilen stehen, die mit "+" oder "#" anfangen und die Artikel unten.
4. Lösche die Artikel
5. Wende auf die Spalte B die Funktion DATEN - DATENTOOLS - TEXT IN SPALTEN an. Verwende das Semikolon als Trennzeichen. Formatiere die erste Spalte als Text (im Schritt 3, sonst werden deine Zeilen, die mit "+" beginnen als Formel interpretiert.
sollte es tatsächlich so sein, dass ein Datensatz immer aus genau 4 Zeilen besteht, dann geht auch folgende Formel in B1:
=Index($A:$A;4*(Zeile($A1)-1)+Spalte(A$1))

Diese Formel ziest du dann bis E1 und soweit nach unten wie benötigt.
Dann kopiere Spalte B-E und füge sie an selber stelle als Wert ein und Lösche Spalte A
Funktioniert aber wie gesagt nur, wenn alle Datensätze genau gleich aufgebaut sind (hier 1+3).
Kann die Anzahl der Artikel variieren, musst du die erste Variante nehmen.
Gruß Daniel
Gruß Daniel

Anzeige
AW: Liste untereinander > nebeneinander
17.12.2014 12:47:48
yummi
Hallo Axel,
falls es etwas variabler sein soll, als die bisher vorgeschlagenen Lösungen nimm mal die beiden Makros und lass sie laufen
Das 1. Sortiert dir deien Artikel in die richtige Zeile und wenn alles so ist, wie du es haben willst, dann kannst du mit dem 2. die Artikel Zeilen löschen.
Ich weiß, hätte man auch in einem Schritt machen können, aber ist bewusst aufgeteilt ;-)

Option Explicit
Sub umsortieren()
Dim letztezeile As Long
Dim i As Long
Dim imerkezeile As Long
Dim imerkeSpalte As Integer
letztezeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
imerkeSpalte = 2
imerkezeile = 1
For i = 1 To letztezeile
If (InStr(1, ActiveSheet.Cells(i, 1).Value, "##", vbTextCompare)  0 Or InStr(1,  _
ActiveSheet.Cells(i, 1).Value, "++", vbTextCompare)  0) Then
imerkezeile = i
imerkeSpalte = 2
Else
With ActiveSheet
.Range(.Cells(i, 1), .Cells(i, 1)).Copy .Range(.Cells(imerkezeile, imerkeSpalte) _
, .Cells(imerkezeile, imerkeSpalte))
End With
imerkeSpalte = imerkeSpalte + 1
End If
Next i
End Sub
Sub löscheArtikel()
Dim letztezeile As Long
Dim i As Long
Dim strRange As String
letztezeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
For i = letztezeile To 1 Step -1
If (InStr(1, ActiveSheet.Cells(i, 1).Value, "##", vbTextCompare) = 0 And InStr(1,  _
ActiveSheet.Cells(i, 1).Value, "++", vbTextCompare) = 0) Then
strRange = i & ":" & i
ActiveSheet.Rows(strRange).Delete Shift:=xlUp
End If
Next i
End Sub
Gruß
yummi

Anzeige
AW: Liste untereinander > nebeneinander
17.12.2014 14:13:54
Axel
vielen Dank für Eure Antworten. Mit der Formel von Daniel klappt es wunderbar.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Werte in Excel untereinander nebeneinander anordnen


Schritt-für-Schritt-Anleitung

Um Daten in Excel von einer untereinander stehenden Anordnung in eine nebeneinander stehende Anordnung zu bringen, kannst Du folgende Schritte durchführen:

  1. Formel zur Verknüpfung nutzen:

    • Stelle sicher, dass Deine Daten in Spalte A untereinander stehen, beginnend ab Zelle A1.
    • In Zelle B1 gib die folgende Formel ein, um die ersten vier Zeilen zu kombinieren:
      =A1 & " " & A2 & " " & A3 & " " & A4
    • Ziehe die Formel bis zur gewünschten Anzahl der Zeilen nach unten, um die nächsten Gruppen zu verknüpfen.
  2. Text in Spalten aufteilen (falls erforderlich):

    • Wenn Deine Werte in einer langen Zeile stehen, kannst Du die Funktion DATEN > DATENTOOLS > TEXT IN SPALTEN verwenden, um sie in separate Spalten zu trennen. Wähle als Trennzeichen das Leerzeichen oder das passende Zeichen.
  3. Unnötige Daten entfernen:

    • Lösche die ursprüngliche Spalte, wenn Du nur die nebeneinander stehenden Werte behalten möchtest.

Häufige Fehler und Lösungen

  • Fehler: Die Formel gibt Fehlerwerte zurück.

    • Lösung: Überprüfe, ob die Zellen, auf die verwiesen wird, tatsächlich Daten enthalten und keine leeren Zellen oder Fehlerwerte.
  • Fehler: Die Daten sind nicht korrekt angeordnet.

    • Lösung: Stelle sicher, dass die Daten in der richtigen Reihenfolge in Spalte A stehen. Wenn nicht, sortiere sie vor der Anwendung der Formeln.

Alternative Methoden

Falls Du eine flexiblere oder automatisierte Lösung benötigst, kannst Du auch VBA-Makros verwenden:

  • Makro zum Umordnen der Daten:
    Sub umsortieren()
      Dim letztezeile As Long
      Dim i As Long
      Dim imerkezeile As Long
      Dim imerkeSpalte As Integer
      letztezeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
      imerkeSpalte = 2
      imerkezeile = 1
      For i = 1 To letztezeile
          If (InStr(1, ActiveSheet.Cells(i, 1).Value, "##", vbTextCompare) > 0 Or InStr(1, ActiveSheet.Cells(i, 1).Value, "++", vbTextCompare) > 0) Then
              imerkezeile = i
              imerkeSpalte = 2
          Else
              ActiveSheet.Cells(imerkezeile, imerkeSpalte).Value = ActiveSheet.Cells(i, 1).Value
              imerkeSpalte = imerkeSpalte + 1
          End If
      Next i
    End Sub

Praktische Beispiele

Angenommen, Du hast die folgenden Daten in Spalte A:

##001
Artikel1
Artikel2
Artikel3
++002
Artikel4
Artikel5
Artikel6
++003
Artikel7
Artikel8
Artikel9

Durch die oben genannten Schritte, insbesondere die Formel in Spalte B, kannst Du die Daten in folgendem Format anordnen:

##001 Artikel1 Artikel2 Artikel3
++002 Artikel4 Artikel5 Artikel6
++003 Artikel7 Artikel8 Artikel9

Tipps für Profis

  • Nutze die VLOOKUP-Funktion oder INDEX-MATCH für komplexere Datenanordnungen.
  • Du kannst auch Bedingte Formatierungen verwenden, um bestimmte Werte hervorzuheben, die untereinander stehen.
  • Speichere häufig verwendete Makros zur schnellen Anwendung in Excel ab, um Deine Effizienz zu steigern.

FAQ: Häufige Fragen

1. Wie kann ich Daten nebeneinander anordnen, wenn sie variabel sind? Du kannst die oben beschriebene Makro-Lösung verwenden, um Daten flexibel zu sortieren, auch wenn die Anzahl der Einträge variiert.

2. Funktioniert das auch in älteren Excel-Versionen? Die meisten dieser Funktionen und Formeln sind in Excel 2010 und später verfügbar. VBA-Makros funktionieren in den meisten Versionen von Excel. Achte jedoch darauf, dass Du Sicherheitswarnungen für Makros beachtest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige