Excel & IT Info

아이엑셀러 닷컴, 엑셀러TV

Excel

엑셀 전문가들은 싫어하지만, 그래도 개인적으로 좋아하는 "비밀 병기"

권현욱(엑셀러) 2026. 5. 20. 17:00
반응형

들어가기 전에

엑셀 포럼에서 INDIRECT 함수에 대해 언급하면 ​​논쟁이 벌어지기 일쑤입니다. INDIRECT는 항상 활성화되어 재계산을 수행하는 휘발성 함수이므로 스프레드시트를 느리게 만들 수 있기 때문입니다. 하지만 제대로 사용하면 동적이고 반응성이 뛰어난 대시보드를 구축하는 데 있어 비밀 병기가 될 수 있습니다.

권현욱(엑셀러) | 아이엑셀러 닷컴 대표 · Microsoft MVP · 엑셀 솔루션 프로바이더 · 작가

chatgpt / iexceller


이 글은 아래 기사 내용을 토대로 작성되었습니다만, 필자의 개인 의견이나 추가 자료들이 다수 포함되어 있습니다.

  • 원문: I know Excel experts hate this function, but it’s still my favorite "secret weapon"
  • URL: https://www.howtogeek.com/microsoft-excel-indirect-function-experts-hate-favorite-secret-weapon/

INDIRECT 함수의 작동 방식

INDIRECT 함수가 지연을 유발한다는 것은 사실이지만, 진짜 위험은 함수 자체에 있는 것이 아니라 더 나은 대안이 있을 때 잘못된 용도로 사용하는 데 있습니다. INDIRECT 함수를 제대로 활용하려면 언제 그 유연성을 활용해야 하고 언제 더 안정적인 대안으로 바꿔야 하는지 알아야 합니다.

 

대부분의 Excel 함수는 직접적이지만, INDIRECT 함수는 지도의 지도와 같습니다. 문에 붙은 메모를 생각해 보세요. 일반적인 함수처럼 집으로 들어가는 대신, 메모는 데이터를 찾으려면 전혀 다른 집으로 가라고 알려줍니다.

 

Excel의 INDIRECT 함수 구문은 간단합니다.

=INDIRECT(ref_text, [a1])

 

  • ref_text: 일반 셀 참조, R1C1 스타일 참조, 명명된 셀 또는 텍스트 문자열로서의 셀 참조
  • a1 (선택 사항): 논리값으로, TRUE(또는 생략)인 경우 ref_text를 A1 스타일 참조로 해석하고, FALSE인 경우 ref_text를 R1C1 스타일 참조로 해석

 

Excel은 기본적으로 A1 스타일 참조(열은 문자, 행은 숫자)를 사용합니다. R1C1 스타일은 열과 행 모두에 숫자를 사용합니다(예: R2C1은 2행 1열). 따라서 대부분의 경우 A1 인수를 비워두고 다음 단계로 진행할 수 있습니다.

 

종속 드롭다운 목록을 만드는 데 이상적인 INDIRECT

엑셀 워크시트에 T_France와 T_USA 라는 이름의 테이블이 두 개 있다고 가정해 보겠습니다. 국가 셀(E2)에서 도시를 선택하면 도시 셀(F2)의 옵션이 자동으로 변경되도록 하고 싶습니다.

 

 

(1) E2 셀에 국가 드롭다운 목록을 만듭니다 . 해당 셀을 선택하고 [데이터] 탭에서 [데이터 유효성 검사]를 클릭합니다.

 

 

 

(3) "목록"을 선택하고 소스 필드에 France,USA를 입력한 후 "확인"을 클릭합니다.

 

 

 

(4) F2 셀(도시 이름이 들어갈 셀)을 선택하고 데이터 유효성 검사 대화 상자에서 다시 "목록"을 선택합니다. 하지만 이번에는 원본 필드에 INDIRECT 함수를 사용합니다.

 

 

 

=INDIRECT("T_"&E2)

 

(5) 이제 E2 셀에서 "USA"를 선택하면 F2 셀의 드롭다운 목록에 T_USA 테이블에 있는 모든 도시 목록이 표시됩니다. 반대로 E2 셀에서 "France"를 선택하면 F2 셀에 프랑스 도시 목록이 표시됩니다.

 

 

이 방법이 작동하는 이유는 수식에 있는 앰퍼샌드(&) 때문입니다 . 앰퍼샌드는 고정된 텍스트 "T_"를 가져와 현재 E2 셀에 있는 단어에 붙입니다. 그런 다음 INDIRECT 함수는 최종적으로 연결된 문자열을 사용하여 Excel에게 해당 이름의 테이블을 찾도록 지시합니다.

 

수천 개의 행으로 이루어진 드롭다운 목록이 있는 대규모 워크시트에서 INDIRECT 함수의 "상시 활성화" 동작으로 인해 Excel이 매우 느려질 수 있습니다. VBA를 사용 하지 않고 앱처럼 계단식 드롭다운 목록을 만드는 가장 좋은 방법은 간접 참조(INDIRECT)를 사용하는 것입니다 . 이처럼 특정 용도에 집중된 설정에서는 성능 저하가 미미합니다.

 

여러 테이블을 연결하는 대시보드에 가장 적합한 INDIRECT

서로 다른 연도의 매출 테이블이 있다고 가정해 보겠습니다. T_2024(왼쪽)와 T_2025(오른쪽)입니다. 드롭다운 메뉴(I2)에서 선택한 연도를 기준으로 매출을 자동으로 합산하는 요약 셀(J2)을 만들고 싶습니다.

 

 

 

(1) T_Years라는 이름의 세 번째 테이블을 만들고, 단일 열에 I2 셀의 드롭다운 목록에 표시할 모든 연도를 나열합니다.

 

 

(2) 두 데이터 테이블의 이름이 일관적인지(T_[Year]) 그리고 데이터를 가져올 열의 레이블이 정확히 동일한지(Sales) 다시 한번 확인합니다. I2 셀을 선택하고 데이터 탭에서 "데이터 유효성 검사"를 클릭합니다.

 

 

 

(3) "목록"을 선택하고, [원본] 필드에서 T_Years 테이블의 연도 셀을 직접 참조합니다. 절대 참조 로 직접 입력 하거나 마우스로 선택하여 참조를 삽입할 수 있습니다. 그런 다음 [확인]을 클릭합니다.

 

 

셀 참조를 직접 사용했더라도 T_Years 테이블에 연도를 추가하면 범위가 자동으로 확장됩니다. 이는 구조화된 Excel 테이블을 사용하는 여러 장점 중 하나입니다.

 

(4) J2 셀에 다음 수식을 입력합니다.

=SUM(INDIRECT("T_"&I2&"[Sales]"))

 

 

이 수식은 Excel에게 앰퍼샌드(&)를 사용하여 "T_" 접두사, I2 셀에 선택된 연도, 그리고 특정 [Sales] 열을 결합하여 테이블 참조를 생성하도록 지시합니다. 그런 다음 INDIRECT 함수는 해당 텍스트 문자열을 SUM 함수가 계산할 수 있는 활성 범위로 평가합니다.

 

이 설정은 직접 선택이 아닌 텍스트 기반 참조를 사용하기 때문에 불안정합니다. 누군가 T_2024를 Table2024로 변경하거나 연도 목록 항목 뒤에 실수로 공백을 추가하면 텍스트 문자열이 알려진 개체와 일치하지 않아 수식이 오류를 일으킵니다. 

 

취약한 부분이 있음에도 불구하고, 대시보드의 확장성을 확보할 수 있기 때문에 여전히 사용하고 있습니다. 2026년이 되더라도 수식을 다시 작성할 필요 없이 T_2026 이라는 새 테이블을 만들고 연도 목록에 2026을 추가하기만 하면 대시보드가 ​​자동으로 업데이트됩니다.

 

INDIRECT 함수의 한계

INDIRECT 함수는 위 시나리오처럼 별개의 테이블 간 전환에는 탁월하지만 한계점이 존재합니다. 단일 확장 데이터셋에 대해 복잡한 수학적 연산을 수행할 때 사용하기 시작하면 변동성 비용이 감당하기 어려운 수준으로 커질 수 있습니다.

 

매일 데이터가 업데이트되는 T_Stocks라는 테이블이 있다고 가정해 보겠습니다. 셀 D3에 입력하는 가변 숫자 X에 대해 최근 X개 항목의 평균 가격을 계산 하려고 합니다.

 

 

이 경우, INDIRECT 함수를 사용 하여 T_Stocks[Price]와 같은 텍스트 문자열을 수동으로 구성하고 행 오프셋을 계산하여 시작점을 찾을 수 있습니다. 그러나 이러한 유형의 계산에는 실제로 참조하는 데이터가 변경될 때만 다시 계산되는 비휘발성 INDEX 함수를 사용하는 것이 좋습니다.

다음은 E3 셀의 수식입니다.

=AVERAGE(INDEX(T_Stocks[Price], ROWS(T_Stocks) - (D3-1)):INDEX(T_Stocks[Price], ROWS(T_Stocks)))

 

이 경우 두 INDEX 함수 사이에 있는 콜론(:)이 동적 범위를 생성하므로 INDIRECT는 필요하지 않습니다. 첫 번째 INDEX는 테이블의 맨 아래에서부터 거꾸로 세어가고, 두 번째 INDEX는 ROWS를 사용하여 테이블의 맨 마지막 항목을 찾습니다.

 

 

그런 다음 셀 D3의 5를 10으로 변경하면 창이 즉시 확장됩니다.

 

마치며

INDIRECT 함수는 느리고 변동성이 함수라는 평을 받기도 하며, 엑셀에서 논란이 많은 함수 중 하나입니다. 하지만 텍스트를 드롭다운 목록이나 테이블 전환을 위한 기능적 매핑으로 변환해야 할 때는 적합한 도구입니다. 적재적소에 선별해서 사용하는 것이 중요합니다.