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

여기에 이미지 설명을 입력하세요

관련 정보