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