ich möchte gerne den Wert in Spalte B verketten, wenn die Werte in Spalte A gleich sind.
Dabei stehen eventuell gleiche Werte immer untereinander, habe diese nämlich sortiert.
Kann mir da jemand helfen?
Danke und Gruß
Marc
Option Explicit
Sub jekt()
Dim i As Integer, letzteZeileA As Integer, a As Integer, n As Integer, Text As String
With Worksheets("Tabelle1")
letzteZeileA = .Cells(Rows.Count, 1).End(xlUp).Row
a = 0
For i = 2 To letzteZeileA
If .Cells(i, 1).Value = .Cells(i + 1, 1).Value Then
Text = Text & .Cells(i, 2).Value
a = a + 1
Else
Text = Text & .Cells(i, 2).Value
For n = 0 To a
.Cells(i - n, 3).Value = Text
Next n
a = 0
n = 0
Text = ""
End If
Next i
End With
End Sub
Grüße
Um die Werte in einer Excel-Tabelle aus Spalte B zu verketten, wenn die Werte in Spalte A gleich sind, kannst Du den folgenden VBA-Code verwenden. Diese Methode ist besonders nützlich, wenn Du viele Daten hast, die in Excel nach Spalten gruppiert sind.
Öffne Deine Excel-Datei und drücke ALT + F11
, um den VBA-Editor zu öffnen.
Klicke auf Einfügen
und wähle Modul
, um ein neues Modul zu erstellen.
Kopiere den folgenden VBA-Code in das Modul:
Option Explicit
Sub jekt()
Dim i As Integer, letzteZeileA As Integer, a As Integer, n As Integer, Text As String
With Worksheets("Tabelle1")
letzteZeileA = .Cells(Rows.Count, 1).End(xlUp).Row
a = 0
For i = 2 To letzteZeileA
If .Cells(i, 1).Value = .Cells(i + 1, 1).Value Then
Text = Text & .Cells(i, 2).Value
a = a + 1
Else
Text = Text & .Cells(i, 2).Value
For n = 0 To a
.Cells(i - n, 3).Value = Text
Next n
a = 0
n = 0
Text = ""
End If
Next i
End With
End Sub
Schließe den VBA-Editor und kehre zu Excel zurück.
Führe das Makro aus, indem Du ALT + F8
drückst, das Makro auswählst und auf Ausführen
klickst.
Jetzt sollten die Werte in Spalte B für die gleichen Werte in Spalte A in Spalte C verkettet sein.
Fehler: "Der Objektvariable oder mit Blockvariable nicht festgelegt."
Lösung: Überprüfe, ob der Blattname in Worksheets("Tabelle1")
korrekt ist. Es muss exakt mit dem Namen des Arbeitsblattes übereinstimmen.
Fehler: "Typen unverträglich."
Lösung: Stelle sicher, dass die Werte in Spalte A und B die richtigen Datentypen haben und nicht leer sind.
Falls Du kein VBA verwenden möchtest, kannst Du auch die Funktion TEXTVERKETTEN
oder VERKETTEN
in Kombination mit WENN
und AGGREGAT
verwenden:
=TEXTVERKETTEN(", "; WAHR; WENN(A:A=A1; B:B; ""))
Diese Formel verkettet alle Werte in Spalte B, wenn die entsprechenden Werte in Spalte A gleich sind. Beachte, dass diese Funktion nur in neueren Excel-Versionen verfügbar ist.
Angenommen, Du hast die folgende Datenstruktur:
A | B |
---|---|
Gruppe1 | Wert1 |
Gruppe1 | Wert2 |
Gruppe2 | Wert3 |
Gruppe2 | Wert4 |
Nach Ausführung des VBA-Codes oder der TEXTVERKETTEN-Formel solltest Du in Spalte C folgendes Ergebnis erhalten:
A | B | C |
---|---|---|
Gruppe1 | Wert1 | Wert1Wert2 |
Gruppe1 | Wert2 | Wert1Wert2 |
Gruppe2 | Wert3 | Wert3Wert4 |
Gruppe2 | Wert4 | Wert3Wert4 |
F8
im VBA-Editor, um den Code Schritt für Schritt auszuführen und Fehler leichter zu identifizieren.WENNFEHLER
-Funktion in Excel, um mögliche Fehler in Deinen Formeln abzufangen und anzuzeigen.1. Kann ich den VBA-Code auf andere Spalten anwenden?
Ja, Du kannst den Code anpassen, indem Du die Spaltenindizes in .Cells(i, 1)
und .Cells(i, 2)
entsprechend änderst.
2. Was ist der Unterschied zwischen TEXTVERKETTEN und VERKETTEN?
TEXTVERKETTEN
ermöglicht das Hinzufügen eines Trennzeichens und kann mehrere Bereiche in einer Formel verketten, während VERKETTEN
nur zwei oder mehr Textwerte ohne Trennzeichen zusammenführen kann.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen