Excel에서 현재 열 이름을 얻는 방법은 무엇입니까?


30

Excel에서 셀의 현재 줄 번호와 현재 열 이름을 얻는 기능은 무엇입니까?


1
난 그냥 기능 발견 LINCOL하지만 문제는 그들이 숫자를 반환하고, 나는에 열 문자 필요 INDIRECT를.
Jader Dias

2
이 경우 OFFSET함수와 함께 또는 INDIRECT수식 대신 함수를 사용할 수 있습니다 . 그러나 문자열을 사용하려면 답변도 업데이트했습니다.
획기적인

그런데 INDIRECT는 일시적인 기능이므로 조금만 사용하십시오. 위치를 계산할 때 기준을 원한다면 OFFSET이 더 나은 선택 일 수 있습니다.
AdamV

답변:


33

ROWCOLUMN기능을 사용 하여이 작업을 수행 할 수 있습니다 . 해당 수식에 대한 인수를 생략하면 현재 셀이 사용됩니다. 이들은 직접 사용할 수 있습니다 기능 , 또는 숫자 값으로 행과 열을 모두 지정할 수있는 다른 기능.OFFSET

예를 들어, =ROW()D8 셀에 입력하면 반환 된 값은 8 =COLUMN()입니다. 동일한 셀에 입력하면 반환 된 값은 4입니다.

열 문자를 원하면 CHAR함수를 사용할 수 있습니다 . 이중 문자 열 이름으로 전달할 때 까다로워지기 때문에 문자를 사용하여 열을 나타내는 것은 권장하지 않습니다 (어쨌든 숫자를 사용하는 것이 더 논리적입니다).

그럼에도 불구하고 여전히 열 문자를 얻으려면 열 번호에 64를 추가하면됩니다 (64는 한 문자보다 적음 A). 이전 예에서 셀 값을로 설정하면 =CHAR(COLUMN()+64)반환 된 값은 다음과 같습니다. D. 셀 값이 셀 위치 자체가되도록하려면 전체 수식은입니다 =CHAR(COLUMN()+64) & ROW().


참고로 ASCII 테이블에서 64를 얻었습니다. CODE수식 을 사용할 수도 있으므로이를 사용하여 업데이트 된 수식은입니다 =CHAR(COLUMN() + CODE("A") - 1). 의 최소값 COLUMN이 항상 1이므로 1을 빼야 합니다 B. 그러면 전체 수식의 최소 반환 값은 입니다.

그러나 두 문자 열에서는 작동하지 않습니다. 이 경우 두 문자 열을 올바르게 구문 분석하려면 다음 수식이 필요합니다.

=IF(COLUMN()>26,IF(RIGHT(CHAR(IF(MOD(COLUMN()-1,26)=0,1,MOD(COLUMN()-1,26))+64),1)="Y",CHAR(INT((COLUMN()-1)/26)+64) & "Z",CHAR(INT((COLUMN()-1)/26)+64) & CHAR(IF(MOD(COLUMN(),26)=0,1,MOD(COLUMN(),26))+64)),CHAR(COLUMN()+64))&ROW()

더 쉬운 방법이 있는지 확실하지 않지만 셀 A1에서 ZZ99문제없이 작동한다는 것을 알고 있습니다. 그러나 이것은 문자 기반 열 식별자의 사용을 피하고 순수한 숫자 기반 공식을 사용하는 것이 가장 좋은 이유를 보여줍니다 (예 : 문자 대신 문자로 열 번호 사용 OFFSET).


처음 26 개 열에 대해서만 작동합니다. 그러나 그렇게 될 것입니다.
Jader Dias

1
@Jader Dias 그렇기 때문에 OFFSET대신 열을 숫자로 지정할 수있는 대신 사용 하는 것이 좋습니다 . 어쨌든, 두 글자 열로 작동하도록 수식을 업데이트하여 답변을 업데이트했습니다.
획기적인

2
나는 그가 대답하지 않은 것을 제외하고는 왜 Scot의 답변이 그렇게 좋을 때이 답변이 그렇게 많은 표를 얻었는지 모르겠다. 복잡한 공식이 필요하지 않습니다. 왜 / 어떻게 작동하는지 설명하는 주석을 추가했습니다.
게르하르트 파월

이것은 AA 등으로 이동 한 다음 작동하지 않을 때까지 작동합니다.
krystan honor

@krystanhonour이 경우 내 대답의 마지막 공식을 사용합니다 ...However, this will not work with two-letter columns. In that case, you need the following formula to properly parse two-letter columns:
돌파구

34

다음 기능을 시도하십시오.

=SUBSTITUTE(ADDRESS(1,COLUMN(),4),"1","")

설명 : ADDRESS(row_num, column_num, [abs_num]). [abs_num] = 4= 상대 주소. 이는 반환 된 값에 '$'가 없음을 의미합니다. 'AB'열의 경우 ADDRESS'AB1'을 반환합니다. 대체물은 '1'을 제거합니다.



2

이것을 임의의 셀에 입력하십시오 :

에스파 ñ :

=SI(ENTERO((COLUMNA()-1)/26)=0;"";CAR((ENTERO(COLUMNA()-1)/26)+64))&CAR(COLUMNA()-(ENTERO((COLUMNA()-1)/26)*26)+64)

영어 :

=IF(INT((COLUMN()-1)/26)=0,"",CHAR((INT(COLUMN()-1)/26)+64))&CHAR(COLUMN()-(INT((COLUMN()-1)/26)*26)+64)

column ()을 행 번호로 바꿀 수 있습니다.


2

열 이름을 얻으려면 다음 공식을 사용했습니다.

특정 셀의 경우 :

=SUBSTITUTE(CELL("address",H3),"$" & ROW(H3),"")

현재 셀의 경우 :

=SUBSTITUTE(CELL("address"),"$" & ROW(),"")

이 변형을 시도하십시오. 3 글자 열에서 작동하며 프런트 엔드에 "$"를 남기지 않습니다.

=SUBSTITUTE(ADDRESS(ROW(XFD123),COLUMN(XFD123),4),ROW(XFD123),"")

2

약간 수동이지만 VBA가 적고 공식이 더 간단합니다.

  • 셀 A1과 같은 Excel 행에 열 번호를 입력하십시오. =column()
  • 아래 행에 =Address(1,A1)
  • 결과를 제공합니다 $A$1

값이 복사되면, 찾기 및 바꾸기 $1빈.


2

이것은 잘 작동합니다

=MID(CELL("address"),2,FIND("$",CELL("address"),2)-2)

이것에 대한 설명을 추가 할 수 있습니까?
ChrisF

1

또 다른 가능한 방법은 다음과 같은 것을 사용하는 것입니다.

=INDIRECT("MySheet1!"&LOOKUP(COLUMN(),colid)&ROW())

여기서 명명 된 범위는 여러 행이있는 두 개의 인접한 열로 구성된 통합 문서 내의 다른 위치를 colid나타냅니다 . 첫 번째 열은 숫자에 해당하는 1에서 n까지의 숫자를 포함하고, 두 번째는 문자 A-ZZ를 포함하거나 많은 열을 참조합니다. 수용하고 싶다. 는 잘이 행 번호를 반환하는 것입니다으로 남아 있습니다. COLUMN()ROW()

따라서 위의 문자열을 'MySheet2'의 A1 셀에 복사하면로 평가되고 =MySheet1!A1의 해당 셀에서 찾은 값을 반환합니다 MySheet1.

예를 들어 MySheet1작업 영역 으로 사용 하여 새 데이터를 삭제하고 다시 삽입 할 수 있으며, MySheet2해당 내용을 참조 하는 형식이나 계산 은 대상 탭 워크 시트의 새 데이터 세트에서 계속 올바르게 작동합니다.


1

폴란드어 Excel 버전을위한 솔루션 :

  • 특정 셀의 경우 :
=PODSTAW(PODSTAW(KOMÓRKA("adres";B1);"$" & WIERSZ();""); "$"; "")
  • 현재 셀의 경우 :
=PODSTAW(PODSTAW(KOMÓRKA("adres");"$" & WIERSZ();""); "$"; "")

0

다음은 VBA, 사용자 정의 수식 솔루션입니다. 1, 2 및 3 문자 열과 함께 작동합니다.

다음을 코드 모듈에 넣으십시오.

Function COLUMNLETTER(Optional rng As Range) As String
    'Returns the Column Letter of the top left cell in rng.

    If rng Is Nothing Then Set rng = Application.Caller
    COLUMNLETTER = Left(rng.Address(0, 0), IIf(rng.Column > 26, IIf(rng.Column > 702, 3, 2), 1))

End Function

모든 셀의 = COLUMNLETTER ()는 셀의 열 문자를 반환합니다.
모든 셀의 = COLUMNLETTER (B3)은 B 를 반환 합니다.

이 사용자 정의 함수는 INDIRECT 함수 내에 일반 수식을 만들 때 효과적입니다.


0
=MID(ADDRESS(ROW(),COLUMN()),2,FIND("$",ADDRESS(ROW(),COLUMN()),2)-2)

주소 수식은 열과 행 이름을 반환하여 작동합니다. 반환 된 형식은 항상 $(Column Letters)$(Row Numbers)- $AA$2또는$XAA$243556

$가 첫 번째 문자에서 항상 발생한다는 것을 알고 있다면 첫 번째 중간 공식을 사용하여 첫 번째 $ 기호 다음에 문자를 가져 오기 시작할 수 있습니다 (예 : 두 번째 문자).

그런 다음 다음 $ 기호를 찾은 다음 (두 개만 있음을 알고 있음) 첫 번째와 두 번째 달러 기호 사이에 몇 개의 문자가 있는지 알 수 있습니다. 나머지는 간단한 빼기입니다.


0

열 제목 (예 : 글자)을 찾는 방법은 다음과 같습니다.

=RIGHT(LEFT(ADDRESS(1,COLUMN()),LEN(ADDRESS(1,COLUMN()))-2),LEN(ADDRESS(1,COLUMN()))-3)

0

이 시도:

=LEFT(ADDRESS(1,COLUMN(),4),LEN(ADDRESS(1,COLUMN(),4))-1)

0

다음 수식은 위치에 관계없이 작동합니다 (열 이름이 다시 표시됨).

=SUBSTITUTE(SUBSTITUTE(ADDRESS(ROW(),COLUMN()),"$",""),ROW(),"")

-1

이 시도:

= IF (COLUMN ()> 26, CHAR (COLUMN () / 26 +64), "") & CHAR (MOD (COLUMN ()-1,26) +65) & ROW ()

이 기능은 "ZY1"또는 column = 701까지 유효합니다.


4
이러한 기능이 무엇인지 설명하여이 답변을 확장하십시오.
Kevin Panko

Excel에서 "A1", "B1"과 같은 현재 열 이름을 가져옵니다. 심지어 "AA1", "BA1", "CA1"과 같은 것입니다.
ayus

-1
=IF(COLUMN()>702,RIGHT(LEFT(ADDRESS(ROW(),COLUMN()),4),3),IF(COLUMN()>26,RIGHT(LEFT(ADDRESS(ROW(),COLUMN()),3),2),RIGHT(LEFT(ADDRESS(ROW(),COLUMN()),2),1)))
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.