Ms Excel: необходимо заменить последний символ и создать единый список

Ms Excel: необходимо заменить последний символ и создать единый список

У меня возникла проблема с заменой последнего символа в таблице Excel.

например

input1: 34553CHP01A , input2: C

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

Мне нужно заменить несколько строк таким образом.

пожалуйста, помогите мне. спасибо.....

решение1

Попробуйте поставить этоПользовательская функциякод в стандартной таблице кодов общедоступного модуля, а затем используйте его так же, как любую собственную функцию Excel на рабочем листе.

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

введите описание изображения здесь

решение2

Если есть TEXTJOIN, то можно использовать:

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

В зависимости от версии Excel при выходе из режима редактирования может потребоваться подтверждение с помощью Ctrl-Shift-Enter вместо Enter.

введите описание изображения здесь

Если вы хотите, чтобы значения располагались друг под другом в одной ячейке, измените " "наCHAR(10)

введите описание изображения здесь

Если они должны располагаться в отдельных ячейках, одна под другой, и в одной из них есть динамические формулы массива, то просто поместите это в верхнюю ячейку:

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

И Excel прольется вниз.

введите описание изображения здесь


Если нет, а пользователь хочет заполнить поле снизу, то поместите это в первую ячейку и скопируйте/перетащите вниз:

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

введите описание изображения здесь

Связанный контент