AA와 같은 문자열을 AB로 늘리는 방법은 무엇입니까?


10

내가 좋아하는 Excel에서 문자열이 AAXA.

나는 이것을 다음과 같이 증가시켜야합니다.

들면 AA전지 A1에서는 것 AB, 전지 B1의 AC셀 B2로 등등.

들면 XA전지 A1에서는 것 XB, 전지 B1의 XC셀 B2로 등등.

인기있는 코드를 시도했지만 =CHAR(CODE(A1)+1)Z 이후에는 작동하지 않습니다.

어떤 힌트라도 환영합니다.


Does not work after Z? 당신은 후 의미합니까 AZ또는ZZ
데이브

안녕 Dave, 나는 AB를 시도했고 그 이후로 B를 찾고 있습니다.
Andy K

이것이 Excel이 셀을 참조하는 방식과 관련이있는 경우 RC 표기법을 사용하여이를 피하는 것이 File > Options > Formulas >R1C1 reference style
좋습니다

안녕하세요 Dirk, 조언에 감사드립니다. 그러나 왜?
Andy K

1
INDIRECT예를 들어 수식에 결과 문자열을 사용하려는 경우 @DirkHorsten의 설명은 주목할 가치가 있습니다.
CallumDA

답변:


11

이것을보십시오 : A1 셀에 "AA"를 넣고 B1 셀에 다음 수식을 입력 하고 드래그하십시오.

=IF(RIGHT($A1,1)="Z", CHAR(CODE(LEFT(A1,1))+1),LEFT(A1,1))&CHAR(65+MOD(CODE(RIGHT(A1,1))+1-65,26))

AA, AB, AC, ..., AZ, BA, BB, BC ... 등으로 증가합니다.

특정 프레젠테이션에 맞게이 수식을 적용 할 수 있습니다. "ZZ"이후에는 작동하지 않습니다.

업데이트 : 수정 된 버그


1
= IF (RIGHT (A1) = "Z", CHAR (CODE (LEFT (A1)) + 1), LEFT (A1)) & IF (RIGHT (A1) <> "Z", CHAR (CODE (RIGHT (A1) ) +1), CHAR (65))
26631

3

엑셀 스프레드 시트 자체를 사용하여 글자를 증가시킬 수 있습니다 A.XFC

먼저 셀 참조를 작성하십시오. INDIRECT(A1&"1")
그런 다음 다음 열의 주소를 찾으십시오. ADDRESS(1,COLUMN(INDIRECT(A10&"1"))+1)

그런 다음 $ ?? $ 1에서 글자를 추출합니다.

  1. 두 번째 $를 찾아서 텍스트를 잘라냅니다.

    =MID(ADDRESS(1,COLUMN(INDIRECT(A1&"1"))+1),2,FIND("$",ADDRESS(1,COLUMN(INDIRECT(A1&"1"))+1),2)-2)
    
  2. 문자열에 아무것도없는 1과 $를 바꾸십시오

    =SUBSTITUTE(SUBSTITUTE(ADDRESS(1,COLUMN(INDIRECT(A1&"1"))+1),"$",""),"1","")
    

가장 적합한 것을 선택하십시오


2
함수에 선택적 세 번째 인수 4를 포함시켜 ADDRESS상대 셀 참조를 리턴 함으로써 "$"대체를 피할 수 있습니다 . 그런 다음 공식이 필요합니다.=SUBSTITUTE(ADDRESS(1,COLUMN(INDIRECT(A1&"1"))+1,4),"1","")
Excellll

2

다른 예 : 이것을 셀 A1에 입력 한 다음 수식을 일부 또는 모든 셀에 복사하십시오.

= CHAR (MOD (ROW (A1) -1; 26) +65) & CHAR (MOD (COLUMN (A1) -1; 26) +65)

문제에 대해 어떻게 생각하는지에 대한 예입니다.


2

"Z"에 도달하면 "A"로 재설정됩니다.

=IF(A1="Z", "A", CHAR(CODE(A1)+1))

더 많은 if 문으로 그 이상을 구축 할 수 있습니다.

또는

방금 비슷한 공식을 작성했습니다.

IF(RIGHT(C2,1)="Z",IF(RIGHT(C2,2)="ZZ","A",CHAR(CODE(MID(C2,5,1))+1)),MID(C2,5,1))&IF(RIGHT(C2,1)="Z","A",CHAR(CODE(MID(C2,6,1))+1))

1

사용하는 또 다른 솔루션은 다음과 ADDRESS()같습니다.

=MID(ADDRESS(1,26+ROW()),2,2)

위의 수식은 AA첫 번째 행과 AB두 번째 행 등 으로 돌아갑니다 .

또한 수학을 사용하면 공식은 다음과 같습니다.

=CONCATENATE(CHAR(INT(ROW()/26)+65),CHAR(MOD(ROW()-1,26)+65))

1

이 코드를 사용하여 셀 주소를 얻었습니다.

=ADDRESS(ROW($AT$17),COLUMN($AT$17)+Increment,4,1)

이 예는 AT17셀 주소에 대한 것입니다.

증가 당신은 얼마나 많은 숫자를 증가 시킬지 정의합니다

이 코드를 cell에 작성했습니다 Ax17.

나중에 나는 값을 얻을 AT17

=INDIRECT(AX17)

!!!

이제 행 대신 열을 증가시킬 수 있습니다!


0

여기 내 솔루션이 있습니다 (셀 A1에 "AA"가 포함되어 있음).

=IF(CHAR(CODE(RIGHT(A2;1))+1)="[";CHAR(CODE(LEFT(A2;1))+1);CHAR(CODE(LEFT(A2;1))))&IF(CHAR(CODE(RIGHT(A2;1))+1)="[";CHAR(65);CHAR(CODE(RIGHT(A2;1))+1))

0

0부터 100까지 (또는 요구 사항까지) 연속 번호로 열 A (행 1)를 채 웁니다.

아래 수식으로 셀 B1 채우기

=CONCATENATE(CHAR(MOD(QUOTIENT(A1,26*26),26)+65),CHAR(MOD(QUOTIENT(A1,26),26)+65),CHAR(MOD(A1,26)+65))

B1에서 B 열의 다른 행으로 수식을 복사합니다 (A 열을 채울 때까지)

이것은 3 문자 AAA에서 ZZZ까지 작동합니다.

No에 따라 수식을 수정해야합니다. 필요한 문자 수 (AA ~ ZZ / AAAAA ~ ZZZZZ 등)


0

나는 이것이 주요 질문에서 약간 벗어난 것을 알고 있지만 더 큰 질문에 대답한다고 생각합니다 ... A1에 편지가 있고 B1의 숫자로 단계를 이루기를 원한다면 다음 공식 콤보가 그것을 달성 할 것입니다 ZZ에 한 글자.

 =IF(LEN(A1)>1,IF((CODE(RIGHT(A1,1))+$B$1)>CODE("Z"),CHAR(CODE(LEFT(A1,1))+1)&CHAR(CODE(RIGHT(A1,1))-21),LEFT(A1,1)&CHAR(CODE(RIGHT(A1,1))+$B$1)),IF((CODE(A1)+$B$1)>CODE("Z"),"A"&CHAR(CODE(A1)-21),CHAR(CODE(A1)+$B$1)))

열 아래로 복사하면 결과가 나타납니다. B5 번호를 변경하면 결과가 변경됩니다.


-1
=IF(AND(LEN(G1)=1,G1="Z"), "AA", IF(LEN(G1)=1, CHAR(CODE(G1)+1), IF(RIGHT(G1,1)<>"Z", LEFT(G1,1)&CHAR(CODE(RIGHT(G1,1))+1), CHAR(CODE(G1)+1)&"A")))

2
설명을 추가하고 답변을
연장해 주시겠습니까?

-1

열의 경우 아래가 올바른 솔루션입니다.

= IF (LEN (ADDRESS (1, COLUMN ())) = 4, MID (ADDRESS (1, COLUMN ()), 2,1), MID (ADDRESS (1, COLUMN ()), 2,2))


3
수식이 "AA에서 AB로 문자열을 증가시키는 방법"이라는 질문에 어떻게 대답하는지 알 수 없습니다.
Máté Juhász
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.