INDIRECT 함수는 텍스트로 지정한 셀 주소를 반환하는 함수다.

예를 들어 '=INDIRECT("A3")'은 '=A3'을 의미한다.

그럼 '그냥 A3을 참조하면 될 것을 왜 이렇게 복잡한 방법으로 참조하지?' 하는 의문이 생길 것이다.

이 함수는 혼자 쓰이지 않으며 다른 찾기/참조 함수와 같이 쓰여, 동적(변하는)인 셀 참조를 가능하게 해준다.

예를 들어, INDEX, MATCH, CHOOSE, VLOOKUP, HLOOKUP, LOOKUP 과 같은 값을 찾을 경우 주로 사용하는 함수와 같이 쓰여서 동적으로 변하는 조건에 따른 정확한 값을 찾게 해준다는 것이다.

 

 

예제 파일과 완성 파일

 

성적표.xlsx 

성적표완성.xlsx

 

 

 

 

INDIRECT 함수 기초

 

 

 

=INDIRECT("셀 주소", [옵션])

셀 주소는 텍스트 문자열 형태로 A1 스타일 또는 R1C1 스타일의 셀주소를 의미한다.

옵션은 생략하거나 TRUE 값이면 A1 스타일을 사용한다는 의미이고,

FALSE 값이면 R1C1 스타일을 사용한다는 의미이다.

 

A1 스타일? R1C1 스타일?

A1 스타일의 셀 주소는 널리 사용되는 B5, M2와 같은 셀 주소 스타일이다.

RIC1 스타일은 ROW(행) 번호, COLUMN(열) 번호로 셀 주소를 참조하는 스타일을 의미한다.

예를 들어, 'R3C4'는 3행의 4열이므로 'D3' 셀을 의미한다.

 

 

INDIRECT 함수는 아래 두 가지 방법으로 사용할 수 있다.

 

 

 

 

INDIRECT에서 셀 주소가 진짜 셀 주소를 의미할 경우 문자열로 표시하기 위해 큰 따옴표(")를 사용하고,

셀 주소가 입력된 셀을 참조할 경우 큰 따옴표 없이 사용한다.

위의 예를 보면 'B9'셀에 입력된 식인 '=INDIRECT("B3")'은 '=B3'과 같으므로 '이순신'이 결과로 표시된다.

'B10'셀에 입력된 식인 '=INDIRECT(E3)'은 'E3' 셀에 입력된 값인 'B3'을 셀 주소로 사용한다는 의미이므로 '=B3'이 되어 역시 '이순신'이 결과로 표시되는 것이다.

 

 

 

INDIRECT 함수 활용

 

 

 

아래와 같이 '중간고사', '기말고사' 시트에 각각 학생들의 점수와 평균, 석차가 입력되어 있을 때 '학생별성적' 시트에서 '시험구분'과 '이름'을 지정하면 '국어', '영어', '수학', '평균', '석차'를 자동으로 찾아주는 예제를 만들어보겠다.

이 예제에서는 INDIRECT 함수와 함께 데이터 유효성 검사, VLOOKUP 함수가 사용되므로 모르겠다면 아래의 글을 함 보자~!!

 

엑셀 데이터 유효성 검사 실습 (조건부 서식 자동으로 지정하기) by Y 

엑셀 함수 4 (찾기/참조 함수) by Y

 

  

 

 

 

시험구분은 데이터 유효성 검사 기능을 이용하여 선택하도록 만들어보겠다.

C2 셀을 선택한 후 [데이터]-[데이터 유효성 검사] 명령을 실행하여 '제한 대상'은 '목록', '원본'에는 '중간고사, 기말고사'를 입력한다. '중간고사, 기말고사'는 시트 이름이므로 정확하게 입력해야 한다.

 

 

 

 

아래와 같이 데이터를 선택할 수 있게 되면 하를 선택하고, 이름에는 학생 이름 중에 아무 이름이나 입력한다.

물론 이름도 '시험구분'처럼 데이터유효성검사를 이용하여 선택해도 되지만, 여기에서는 직접 입력하도록 했다.

 

          

 

 

 

C4~C8 셀에 아래와 같이 식을 입력하면, 이순신의 중간고사 데이터가 모두 찾아진다.

 

 

 

 

사실 C4 셀에 입력된 식에서 빨간색으로 표시된 'C2' 부분 때문에 INDIRECT 함수를 사용한 것이다.

C2 셀의 값이 현재는 '중간고사'지만, '기말고사'가 될 수도 있다.

이 변하는 값을 INDIRECT 함수를 이용하면 모든 참조가 가능해지는 것이다.

이와 같이 참조에서 변하는 부분이 있다면 INDIRECT 함수를 사용하면 해결된다.

 

 

 

 

 

 

 

 

Posted by Y&S