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

Zeichenkette korrigieren

Forumthread: Zeichenkette korrigieren

Zeichenkette korrigieren
21.03.2019 09:15:23
Al
Hallo zusammen,
ich habe folgende Problemstellung:
Ich habe eine Liste in der Spalte A. Inhalte dieser Liste sind Zeichenketten wie zB:
P-0173381-A-18-F1-1
P-0173381-A-18-F1-2
P-0173381-A-18-F2
P-0173381-A-18-F19
P-0173381-A-18-F1a-1
3830-15-1119-F1c-1
3830-15-1119-F112-2
3830-15-1119-F13v-3
3830-15-1119-F121c-4
P-0173381-A-18-B1
P-0173381-A-18-B17
P-0173381-A-18-B9a
P-0173381-A-18-B9b
P-0173381-A-18-Z17_1
P-0173381-A-18-Z18c_2
Auf Basis dieser Zeichnketten lasse ich ein SVerweis-funktion laufen, um aus einer Tabelle gewisse Werte/Attribute auszulesen. Das Problem dabei: Überall wo ein F vorkommt, soll aber ein B stehen und alle nachfolgenden Zeichen/Buchstaben/Zahlen hinter der ersten Zahl(en) nach dem F sollen verschwinden. Grund hierfür ist, dass die Tabelle keine F und beispielsweise ...c-4 (letzter Listeneintrag) enthält und die Suche mit SVERWEIS immer zu "#NV" Ergebnissen führt.
Die Liste oben, wie sie danach aussehen soll, damit die SVERWEIS-Funktion Ergebnisse bringt, sei hier nochmal dargestellt: (korrekte Liste kann auch in Spalte B gelistet werden)
P-0173381-A-18-B1
P-0173381-A-18-B1
P-0173381-A-18-B2
P-0173381-A-18-B19
P-0173381-A-18-B1
3830-15-1119-B1
3830-15-1119-B112
3830-15-1119-B13
3830-15-1119-B121
P-0173381-A-18-B1
P-0173381-A-18-B17
P-0173381-A-18-B9
P-0173381-A-18-B9
P-0173381-A-18-Z17
P-0173381-A-18-Z18
Kann mir da jemand weiterhelfen? Gibt es Zellfunktionen, die dieses Problem beheben können?
Danke für die Mühe.
Gruß
Al
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
per VBA
21.03.2019 10:08:27
UweD
Hallo
evtl hilft dir ja dieser Code
in ein Modul
Sub F_in_B()
    Dim LR As Long, i As Long, j As Integer, k As Integer, Sp As Integer, Z1 As Integer
    Dim Arr, Ende As Integer
    
    Z1 = 1 'ggf Überschrift berücksichtigen 
    Sp = 1 'Spalte A 
    LR = Cells(Rows.Count, Sp).End(xlUp).Row 'letzte Zeile der Spalte 
    
    Columns(Sp).Offset(, 1).ClearContents
    For i = 1 To LR
        Arr = Split(Cells(i, Sp), "-")
        For j = Ubound(Arr) To Lbound(Arr) Step -1
            If Not IsNumeric(Arr(j)) Then
                'F in B wechseln 
                Arr(j) = Replace(Arr(j), "F", "B")
                
                'Unterstriche weg 
                Ende = InStr(Arr(j), "_")
                If Ende > 0 Then
                    Arr(j) = Left(Arr(j), Ende - 1)
                End If
                
                'Test hinter letzer Ziffer löschen 
                For k = Len(Arr(j)) To 1 Step -1
                    If IsNumeric(Mid(Arr(j), k, 1)) Then
                        Arr(j) = Left(Arr(j), k)
                        Exit For
                    End If
                Next k
                
                'Wert zurückschreiben 
                Cells(i, Sp).Offset(0, 1) = Join(Arr, "-")
                Exit For
            Else
                 'Letzte Zahl entfernen 
                 Redim Preserve Arr(j - 1)
            End If
        Next j
    Next i
    
End Sub

LG UweD
Anzeige
AW: per VBA
21.03.2019 10:45:54
Al
Hallo Uwe,
klappt super. Ich habe deinen Code auch umgeschrieben für ein anderes Problem, das ich hatte.
Besten Dank.
Gruß
Danke für die Rückmeldung owT
21.03.2019 11:20:44
UweD
AW: alternativ mit Formel ...
21.03.2019 10:15:13
neopa
Hallo Al,
... in B1:
=WECHSELN(LINKS(WENNFEHLER(LINKS(A1;FINDEN("!";WECHSELN(WECHSELN(A1;"_";"-");"-";"!";
5-ISTZAHL(LINKS(A1;1)+0)))-1);A1);
LÄNGE(WENNFEHLER(LINKS(A1;FINDEN("!";WECHSELN(WECHSELN(A1;"_";"-");"-";"!";
5-ISTZAHL(LINKS(A1;1)+0)))-1);A1))-ISTFEHL(RECHTS(WENNFEHLER(LINKS(A1;FINDEN("!";WECHSELN(WECHSELN(A1;"_";"-");"-";"!";
5-ISTZAHL(LINKS(A1;1)+0)))-1);A1);1)+0));"F";"B")

und nach unten kopieren.
Gruß Werner
.. , - ...
Anzeige
AW: alternativ mit Formel ...
21.03.2019 10:48:08
Al
Hallo Werner,
besten Dank für die Hilfe. Klappt ebenfalls sehr gut!
Gruß
Al
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige