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 のバージョンによっては、編集モードを終了するときに Enter キーではなく Ctrl + Shift + 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),"")

ここに画像の説明を入力してください

関連情報