답변:
ROW
및 COLUMN
기능을 사용 하여이 작업을 수행 할 수 있습니다 . 해당 수식에 대한 인수를 생략하면 현재 셀이 사용됩니다. 이들은 직접 사용할 수 있습니다 기능 , 또는 숫자 값으로 행과 열을 모두 지정할 수있는 다른 기능.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
).
OFFSET
대신 열을 숫자로 지정할 수있는 대신 사용 하는 것이 좋습니다 . 어쨌든, 두 글자 열로 작동하도록 수식을 업데이트하여 답변을 업데이트했습니다.
However, this will not work with two-letter columns. In that case, you need the following formula to properly parse two-letter columns:
다음 기능을 시도하십시오.
=SUBSTITUTE(ADDRESS(1,COLUMN(),4),"1","")
설명 : ADDRESS(row_num, column_num, [abs_num])
. [abs_num] = 4
= 상대 주소. 이는 반환 된 값에 '$'가 없음을 의미합니다. 'AB'열의 경우 ADDRESS
'AB1'을 반환합니다. 대체물은 '1'을 제거합니다.
이 시도
=SUBSTITUTE(SUBSTITUTE(CELL("address"),"$" & ROW(),""), "$", "")
이것은 $ 등이없는 정확한 열 헤더를 제공합니다.
또 다른 가능한 방법은 다음과 같은 것을 사용하는 것입니다.
=INDIRECT("MySheet1!"&LOOKUP(COLUMN(),colid)&ROW())
여기서 명명 된 범위는 여러 행이있는 두 개의 인접한 열로 구성된 통합 문서 내의 다른 위치를 colid
나타냅니다 . 첫 번째 열은 숫자에 해당하는 1에서 n까지의 숫자를 포함하고, 두 번째는 문자 A-ZZ를 포함하거나 많은 열을 참조합니다. 수용하고 싶다. 는 잘이 행 번호를 반환하는 것입니다으로 남아 있습니다. COLUMN()
ROW()
따라서 위의 문자열을 'MySheet2'의 A1 셀에 복사하면로 평가되고 =MySheet1!A1
의 해당 셀에서 찾은 값을 반환합니다 MySheet1
.
예를 들어 MySheet1
작업 영역 으로 사용 하여 새 데이터를 삭제하고 다시 삽입 할 수 있으며, MySheet2
해당 내용을 참조 하는 형식이나 계산 은 대상 탭 워크 시트의 새 데이터 세트에서 계속 올바르게 작동합니다.
다음은 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 함수 내에 일반 수식을 만들 때 효과적입니다.
=MID(ADDRESS(ROW(),COLUMN()),2,FIND("$",ADDRESS(ROW(),COLUMN()),2)-2)
주소 수식은 열과 행 이름을 반환하여 작동합니다. 반환 된 형식은 항상 $(Column Letters)$(Row Numbers)
- $AA$2
또는$XAA$243556
$가 첫 번째 문자에서 항상 발생한다는 것을 알고 있다면 첫 번째 중간 공식을 사용하여 첫 번째 $ 기호 다음에 문자를 가져 오기 시작할 수 있습니다 (예 : 두 번째 문자).
그런 다음 다음 $ 기호를 찾은 다음 (두 개만 있음을 알고 있음) 첫 번째와 두 번째 달러 기호 사이에 몇 개의 문자가 있는지 알 수 있습니다. 나머지는 간단한 빼기입니다.
이 시도:
= IF (COLUMN ()> 26, CHAR (COLUMN () / 26 +64), "") & CHAR (MOD (COLUMN ()-1,26) +65) & ROW ()
이 기능은 "ZY1"또는 column = 701까지 유효합니다.
LIN
및COL
하지만 문제는 그들이 숫자를 반환하고, 나는에 열 문자 필요INDIRECT
를.