Sra. Excel: es necesario reemplazar el último carácter y crear una lista única

Sra. Excel: es necesario reemplazar el último carácter y crear una lista única

Tengo un problema al reemplazar el último carácter en una hoja de Excel.

Por ejemplo

input1: 34553CHP01A , input2: C

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

Tengo que reemplazar varias filas como esta.

por favor ayúdame. gracias.....

Respuesta1

prueba a poner estoFunción definida por el usuariocódigo en una hoja de códigos de módulo público estándar y luego úselo como lo haría con cualquier función nativa de Excel en la hoja de trabajo.

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

ingrese la descripción de la imagen aquí

Respuesta2

Si uno tiene TEXTJOIN, entonces puede usar:

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

Dependiendo de la versión de Excel, es posible que sea necesario confirmar esto con Ctrl-Shift-Enter en lugar de Enter al salir del modo de edición.

ingrese la descripción de la imagen aquí

Si uno quiere que los valores estén uno debajo del otro en la misma celda, cambie " "aCHAR(10)

ingrese la descripción de la imagen aquí

Si van a estar en celdas separadas, una debajo de la otra, y una tiene las fórmulas de matriz dinámica, simplemente coloque esto en la celda superior:

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

Y Excel se derrumbará.

ingrese la descripción de la imagen aquí


Si no es así y el usuario quiere completarlo, coloque esto en la primera celda y copie/arrástrelo hacia abajo:

=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),"")

ingrese la descripción de la imagen aquí

información relacionada