Ms Excel: Das letzte Zeichen muss ersetzt und eine einzelne Liste erstellt werden

Ms Excel: Das letzte Zeichen muss ersetzt und eine einzelne Liste erstellt werden

Ich habe ein Problem beim Ersetzen des letzten Zeichens in der Excel-Tabelle.

Zum Beispiel

input1: 34553CHP01A , input2: C

output: 34553CHP01A
        34553CHP01B
        34553CHP01C
input: columnA,columnB, output: columnC

ich muss auf diese Weise mehrere Zeilen ersetzen.

Bitte helfen Sie mir. Danke.....

Antwort1

Versuchen Sie diesBenutzerdefinierte FunktionCode in einem standardmäßigen öffentlichen Modulcodeblatt und verwenden Sie ihn dann wie jede native Excel-Funktion im Arbeitsblatt.

Option Explicit

Function EXPAND_PARTNO(pno As String, n As String, _
                       Optional delim As String = " ")

    Dim m As String, i As Long, pnos As Variant

    pno = Trim(pno)
    m = Right(pno, 1)
    pno = Left(pno, Len(pno) - 1)
    ReDim pnos(Asc(m) To Asc(n))

    For i = Asc(m) To Asc(n)
        pnos(i) = pno & Chr(i)
    Next i

    EXPAND_PARTNO = Join(pnos, delim)

End Function

Bildbeschreibung hier eingeben

Antwort2

Wenn man TEXTJOIN hat, kann man Folgendes verwenden:

 =TEXTJOIN(" ",,LEFT(A2,LEN(A2)-1)&CHAR(ROW(INDEX($ZZ:$ZZ,CODE(RIGHT(A2))):INDEX($ZZ:$ZZ,CODE(B2)))))

Abhängig von der jeweiligen Excel-Version muss dies beim Verlassen des Bearbeitungsmodus möglicherweise mit Strg-Umschalt-Eingabe statt mit der Eingabetaste bestätigt werden.

Bildbeschreibung hier eingeben

Möchte man die Werte untereinander in der gleichen Zelle haben, dann ändert man das " "inCHAR(10)

Bildbeschreibung hier eingeben

Wenn sie in separaten Zellen untereinander stehen sollen und eine der dynamischen Arrayformeln hat, fügen Sie einfach Folgendes in die oberste Zelle ein:

=LEFT(A2,LEN(A2)-1)&CHAR(ROW(INDEX($ZZ:$ZZ,CODE(RIGHT(A2))):INDEX($ZZ:$ZZ,CODE(B2))))

Und Excel wird ausfallen.

Bildbeschreibung hier eingeben


Wenn nicht und der Benutzer es nach unten ausfüllen möchte, fügen Sie Folgendes in die erste Zelle ein und kopieren/ziehen Sie es nach unten:

=IF(ROW(INDEX($ZY:$ZY,CODE(RIGHT($A$2))))+ROW($A1)-1<=ROW(INDEX($ZY:$ZY,CODE($B$2))), LEFT($A$2,LEN($A$2)-1)&CHAR(ROW(INDEX($ZY:$ZY,CODE(RIGHT($A$2))))+ROW($A1)-1),"")

Bildbeschreibung hier eingeben

verwandte Informationen