728x90

엑셀에서 =을 사용하면 수식을 입력할 수 있는 함수 상태가 됩니다.
이 때는 A1, B1등으로 다른 셀의 값을 참조할 수 있는데, 중복되 보이지만 참조를 전문적으로 하는 함수가 있습니다.
응용이 풍부해서 잘 사용하면 고급 함수를 사용하게 하는 INDIRECT 함수에 대해서 알아보겠습니다.
 
 

1. INDIRECT 함수

 
INDIRECT(ref_text, [a1]) : 텍스트를 셀주소로 받아들여서 참조하여 값을 받아들입니다.
 

  • ref_text : 참조로 정의된 이름이 들어 있는 셀에 대한 참조이거나 셀에 대한 텍스트 문자열 참조입니다. 유효한 셀이 아닌 경우에는 #REF! 오류 값이 반환됩니다.
  • a1 : true일 때는 A1 스타일을 주소형식으로 받아들입니다, false일 때는 R1C1스타일의 참조로 해석됩니다.
    ( 링크 : R1C1 셀 주소 스타일 )

 
설명만 들어서는 거의 도무지 알 수 없는 함수입니다.
예를 들면 =INDIRECT("A1")이라고 하면 A1이라는 텍스트를 받아들여 A1셀을 참조합니다.
아래 예시를 확인해 보겠습니다.

 

일반 참조와 INDIRECT 비교

 

일반 참조는 칸에 있는 C6을 그대로 텍스트로 받아 들이지만 INDIRECT는 셀 주소 C6을 참조합니다.
이런 특성 때문에 일반 참조와는 다른 방법으로 수식을 만들 수 있습니다.
 

indirect 응용

수식을 통해서 참조할 위치를 입력할 수 있습니다.
수식이 다양한 값들을 상황에 맞게 조정할 수 있습니다.
그래서 상대참조와 절대참조를 통한 셀 참조보다 자유로운 입력이 가능합니다.
 

320x100

 
 

2. INDIRECT 여러 시트를 빠르게 참고하기

 
다른 시트의 값을 입력할 때는 ='sheet1'!B2 이라고 입력하면 됩니다.
여러 시트에서 값을 불러오는 것은 양이 많다면 엄청나게 번거로운 일이 됩니다.
이걸 편리하게 처리하는 방법을 알아보겠습니다.
 
이런 12개의 시트에서 값을 가지고 오는 경우 시트에 일일히 들어가서 클릭하면 시간이 걸리죠 

여러개의 시트

하지만 INDIRECT 함수를 사용하면 편리하게 값을 불러올 수 있습니다.
아래처럼 함수를 작성하고 복사해서 붙여넣기로 각기 다른 시트의 A1 값을 불러옵니다.
아래와 같은 식으로 수년에 걸쳐 매달 DATA가 있다면 INDIRECT를 쓰지 않으면 안될 정도가 됩니다.
 

Indirect의 활용

 

 
 

3. INDIRECT 배열 만들기

 
배열을 이용해서 연속 함수 계산이 가능합니다.
하지만 배열을 손으로 쳐서 {1,2,3,4 ... } 을 넣으려면 번거로운데요.
=ROW(INDIRECT("1:100"))이나 =ROW(INDIRECT("1:"&B4)) 라고 하면 배열과 같습니다.
하지만 최신버전의 엑셀에서는 SEQUENCE 함수로 배열을 만들 수 있습니다.
( 링크 : 배열 상수를 입력하고 함수에서 활용하는 방법 )
 
 

반응형

+ Recent posts