LBtools

엑셀 시트 이름을 셀 값으로 참조하는 법, INDIRECT로 이렇게 하면 돼요

사무약 2분

한눈에 보기

  • =INDIRECT(문자열)로 셀에 적힌 시트 이름을 실제 참조로 바꿔서 값을 가져올 수 있어요.
  • 시트 이름을 셀에 적어두면 수식을 건드리지 않고도 참조 대상 시트를 바꿀 수 있어요.
  • 다만 INDIRECT는 열려 있는 파일만 참조할 수 있고, 닫힌 통합 문서는 인식하지 못해요.
목차 (4)

INDIRECT는 텍스트로 된 셀 주소나 시트 이름을 실제 참조로 바꿔주는 함수예요. 보통 수식 안에 시트 이름을 직접 적으면 그 이름이 수식에 고정되는데, INDIRECT를 쓰면 시트 이름을 셀 값으로 따로 빼둘 수 있어서 그 셀 값만 바꾸면 수식은 그대로 둔 채 참조하는 시트를 바꿀 수 있어요.

B2에 참조하고 싶은 시트 이름(4월)을 입력하면, C2 수식이 그 글자를 시트 이름으로 바꿔 '4월' 시트의 B2 값을 가져와요.

C2fx=INDIRECT(B2&"!B2")
ABC
1시트 이름참조 결과
24월1250000

시트 이름이 든 셀과 셀 주소를 문자열로 연결하면 돼요

=INDIRECT(문자열)

위 표에 그대로 쓰려면 C2 셀에 =INDIRECT(B2&"!B2") — 오른쪽 예제 수식 복사를 누르면 이게 복사돼요.

일반 참조와 뭐가 다른가요

보통 =4월!B2처럼 시트 이름을 수식에 직접 적으면 그 이름 자체가 수식에 고정돼요. INDIRECT를 쓰면 시트 이름을 수식이 아니라 셀 값으로 분리해둘 수 있어서, 셀 값만 바꾸면 수식을 하나도 고치지 않고도 다른 시트를 참조하게 할 수 있어요. 월별 시트가 여러 개 있을 때 드롭다운으로 월을 고르면 그 달 시트 값을 자동으로 가져오는 방식이 대표적인 활용이에요.

여러 시트를 합칠 때는 3차원 참조가 더 간단해요

여러 시트를 한 번에 더하고 싶다면 엑셀 여러 시트 합계 한 번에 구하는 법의 3차원 참조가 더 간단해요. 그 방법은 참조할 시트 범위가 고정돼 있을 때 쓰는 거고, INDIRECT는 반대로 참조할 시트 자체가 상황에 따라 바뀌는 경우에 써요. 시트를 합치는 게 아니라, 어떤 시트를 볼지 자체를 셀 값으로 조종하는 용도예요.

흔한 오해: 다른 파일도 똑같이 참조할 수 있다

INDIRECT로 다른 통합 문서(파일)를 참조하려면 그 파일이 반드시 열려 있어야 해요. 보통의 외부 참조 수식은 대상 파일이 닫혀 있어도 마지막으로 계산된 값을 보여주지만, INDIRECT는 텍스트를 그때그때 참조로 바꾸는 방식이라 대상 파일이 닫혀 있으면 #REF! 오류가 나요. 다른 파일을 자주 닫아두고 쓰는 환경이라면 INDIRECT 대신 일반 외부 참조 수식을 쓰는 게 더 안전해요.

실무 팁: 시트 이름에 공백이 있으면 작은따옴표를 신경 쓰세요

실무 팁으로, 시트 이름에 띄어쓰기나 숫자가 섞여 있으면 수식 안에서 작은따옴표로 감싸야 하는 규칙이 INDIRECT 안에서도 그대로 적용돼요. 문자열을 조합할 때 작은따옴표까지 문자열 안에 포함시켜야 오류가 안 나요. 시트 이름을 아예 한글이나 영문으로만 깔끔하게 통일해두면 이런 문제를 피할 수 있어요.

#REF! 오류가 왜 뜨는지 더 자세히 알고 싶다면 #REF!·#VALUE!·#DIV/0! 오류는 무슨 뜻인가요에서 원인별로 정리했어요. 다른 시트 값을 그냥 가져오기만 하면 된다면 엑셀 VLOOKUP으로 다른 시트 값 가져오는 법이 더 간단할 수 있어요.

작성·검수

LONGBRIGHT — 광고 마케팅 현업에서 일하며 LBtools를 혼자 만들고 운영해요. 함수 동작과 메뉴 설명은 각 제조사의 공식 문서와 실제 동작을 기준으로 확인해요.

발행
최종 확인

잘못된 내용을 발견하셨다면 문의로 알려주세요. 확인해서 고치고 이 날짜를 갱신해요. 운영 원칙도 공개해두었어요.

이런 글도 함께 보면 좋아요