Excel 女士:需要替换最后一个字符并制作单个列表

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

在此处输入图片描述

相关内容