INDIRECT 함수는 다른 셀을 참조하는 주소를 동적으로 생성하는 함수입니다. 주로 셀 주소를 텍스트로 입력하여 다른 셀을 참조하거나, 동적으로 참조할 범위나 시트를 변경할 때 유용하게 사용됩니다.
📌 기본 문법
=INDIRECT(주소, [a1])
✅ 인수 설명
- 주소: 참조할 셀 주소를 텍스트 형식으로 입력합니다. (예: "A1", "Sheet1!B2", "B"&A1)
- a1 (선택 사항): 이 인수는 주소 참조 스타일을 지정합니다.
- TRUE (기본값): A1 스타일 참조 (예: A1)
- FALSE: R1C1 스타일 참조 (예: R1C1)
📌 사용 예제
✅ 예제 1: 동적 셀 참조
📌 A1 셀에 입력된 값을 참조하는 방법
=INDIRECT(A1)
- A1 셀에 입력된 셀 주소를 참조합니다. 예를 들어 A1 셀에 "B2"를 입력했다면, INDIRECT(A1)는 B2 셀을 참조하게 됩니다.
✅ 예제 2: 동적 시트 참조
📌 Sheet1에서 B2 셀을 참조
=INDIRECT("Sheet1!B2")
- Sheet1의 B2 셀을 참조하는 방식입니다.
- 시트 이름과 셀 주소를 동적으로 결합하여 참조할 수도 있습니다.
✅ 예제 3: 동적 범위 참조
📌 B2에서 B10까지 범위를 참조
=INDIRECT("B2:B10")
- 범위 B2:B10을 동적으로 참조하는 방법입니다.
✅ 예제 4: 셀 주소와 숫자 결합
📌 A1 셀에 있는 숫자에 따라 동적으로 범위 참조
=INDIRECT("B" & A1)
- A1에 입력된 숫자에 따라 **B1, B2, B3...**와 같은 동적 참조가 가능합니다. 예를 들어, A1이 3이면 B3 셀을 참조합니다.
✅ 예제 5: R1C1 스타일 참조
📌 R1C1 스타일을 사용하여 참조
=INDIRECT("R2C2", FALSE)
- R1C1 스타일에서 R2C2는 2행 2열을 참조하는 방식입니다. FALSE를 사용하면 R1C1 스타일로 참조됩니다.
✅ 예제 6: 동적 시트 이름과 범위 결합
📌 A1에 있는 시트 이름과 B2:B10 범위를 동적으로 참조
=INDIRECT(A1 & "!B2:B10")
- A1 셀에 입력된 시트 이름을 사용하여 동적으로 시트와 범위를 참조합니다. 예를 들어 A1에 "Sheet2"가 입력되면 Sheet2!B2:B10 범위를 참조합니다.
✅ 예제 7: 다른 문서에서 동적 참조
📌 다른 문서에서 동적으로 데이터 가져오기
=INDIRECT("[문서ID]Sheet1!B2")
- 외부 문서에 있는 데이터를 동적으로 참조할 수 있습니다. 다만, 외부 문서를 열어둬야 제대로 작동합니다.
📌 INDIRECT 함수 사용 시 주의할 점
- 참조 오류 발생 가능성
- INDIRECT는 주소가 잘못되었거나 존재하지 않는 셀을 참조할 경우 오류가 발생합니다. 예를 들어 "B" & A1에서 A1에 잘못된 값이 들어 있으면 오류가 발생할 수 있습니다.
-
- 동적 참조가 고정되지 않음
- INDIRECT는 실제 참조를 동적으로 업데이트하지만, 그 자체로는 고정된 참조 기능이 없습니다. 따라서, 시트 이름이나 셀 주소가 바뀔 때마다 참조도 바뀌게 됩니다.
-
- 성능 문제
- INDIRECT는 동적으로 셀 주소를 계산하므로 많은 셀에 사용되면 성능에 영향을 미칠 수 있습니다.
-
- 외부 문서 참조 제한
- 다른 문서에서 INDIRECT를 사용할 때는 그 문서가 열려 있어야 제대로 작동합니다.
📌 INDIRECT 함수 요약
✔ 동적으로 셀 참조를 할 수 있는 함수
✔ 셀 주소나 시트 이름을 텍스트로 입력하여 참조 가능
✔ 동적 범위 참조, 동적 시트 참조 등 유용한 기능
✔ 잘못된 주소를 참조할 경우 오류 발생
✔ 외부 문서 참조 시 문서가 열려 있어야 동작
'엑셀 함수 수식 정리' 카테고리의 다른 글
엑셀 COUNTA 함수 (0) | 2025.01.27 |
---|---|
엑셀 TEXT 함수 (0) | 2025.01.27 |
엑셀 UNIQUE 함수 (0) | 2025.01.27 |
엑셀 FILTER 함수 (0) | 2025.01.27 |
엑셀 SORT 함수 (0) | 2025.01.27 |