목차
이 Excel INDIRECT 자습서에서는 함수의 구문, 기본 사용법을 설명하고 Excel에서 INDIRECT를 사용하는 방법을 보여 주는 여러 수식 예를 제공합니다.
Microsoft에는 많은 함수가 있습니다. Excel, 일부는 이해하기 쉽고 다른 일부는 긴 학습 곡선이 필요하며 전자가 후자보다 더 자주 사용됩니다. 그러나 Excel INDIRECT는 그 종류 중 하나입니다. 이 Excel 함수는 계산을 수행하지 않으며 조건이나 논리 테스트를 평가하지도 않습니다.
그렇다면 Excel에서 INDIRECT 함수는 무엇이며 어디에 사용합니까? 이것은 매우 좋은 질문이며 이 자습서를 다 읽고 나면 몇 분 안에 포괄적인 답변을 얻을 수 있기를 바랍니다.
Excel INDIRECT 함수 - 구문 및 기본 사용
이름에서 알 수 있듯이 Excel INDIRECT는 셀, 범위, 기타 시트 또는 통합 문서를 간접적으로 참조하는 데 사용됩니다. 즉, INDIRECT 함수를 사용하면 하드 코딩하는 대신 동적 셀 또는 범위 참조를 만들 수 있습니다. 따라서 수식 자체를 변경하지 않고도 수식 내의 참조를 변경할 수 있습니다. 또한 이러한 간접 참조는 일부 새 행이나 열이 워크시트에 삽입되거나 기존 항목을 삭제할 때 변경되지 않습니다.
이 모든 것은 예에서 더 쉽게 이해할 수 있습니다. 그러나 수식을 작성할 수 있으려면 가장 간단한 수식이라도 다음을 알아야 합니다.자동으로. 해결 방법은 다음과 같이 INDIRECT 함수를 사용하는 것입니다.
=SUM(INDIRECT("A2:A5"))
Excel은 "A1:A5"를 범위 참조가 아닌 단순한 텍스트 문자열로 인식하므로 아무 것도 만들지 않습니다. 행을 삽입하거나 삭제하면 변경됩니다.
다른 Excel 함수와 INDIRECT 사용
SUM 외에도 INDIRECT는 ROW, COLUMN, ADDRESS, VLOOKUP, SUMIF 등이 있습니다.
예제 1. INDIRECT 및 ROW 함수
ROW 함수는 값 배열을 반환하기 위해 Excel에서 자주 사용됩니다. 예를 들어, A1:A10:
=AVERAGE(SMALL(A1:A10,ROW(1:3)))
범위에서 가장 작은 3개 숫자의 평균을 반환하려면 다음 배열 수식( Ctrl + Shift + Enter 를 눌러야 함)을 사용할 수 있습니다. 그러나 워크시트의 1행과 3행 사이에 새 행을 삽입하면 ROW 함수의 범위가 ROW(1:4)로 변경되고 수식은 3이 아닌 4개의 가장 작은 숫자의 평균을 반환합니다. .
이 문제가 발생하지 않도록 ROW 함수에 INDIRECT를 중첩하면 배열 수식이 삽입 또는 삭제된 행 수에 관계없이 항상 올바른 상태로 유지됩니다.
=AVERAGE(SMALL(A1:A10,ROW(INDIRECT("1:3"))))
다음은 LARGE 함수와 함께 INDIRECT 및 ROW를 사용하는 몇 가지 추가 예입니다: 범위에서 N개의 가장 큰 숫자를 합산하는 방법.
예 2. INDIRECT 및 ADDRESS 함수
다음을 사용할 수 있습니다. Excel INDIRECT와 ADDRESS 함수를 함께 사용하여 가져오기즉석에서 특정 셀의 값.
기억하시겠지만 ADDRESS 함수는 Excel에서 행 및 열 번호로 셀 주소를 가져오는 데 사용됩니다. 예를 들어 수식 =ADDRESS(1,3)
은 C1이 첫 번째 행과 세 번째 열의 교차점에 있는 셀이므로 $C$1 문자열을 반환합니다.
간접 셀 참조를 만들려면 ADDRESS 함수를 INDIRECT에 포함하기만 하면 됩니다. 다음과 같은 수식:
=INDIRECT(ADDRESS(1,3))
물론 이 사소한 수식은 기술을 보여줄 뿐입니다. 다음은 실제로 유용할 수 있는 몇 가지 예입니다.
- INDIRECT ADDRESS 수식 - 행과 열을 전환하는 방법.
- VLOOKUP 및 INDIRECT - 다른 시트에서 동적으로 데이터를 가져오는 방법 .
- INDEX/MATCH를 사용한 INDIRECT - 대소문자를 구분하는 VLOOKUP 수식을 완벽하게 만드는 방법.
- Excel INDIRECT 및 COUNTIF - 비연속 범위 또는 a에서 COUNTIF 함수를 사용하는 방법 셀 선택.
Excel에서 데이터 유효성 검사와 함께 INDIRECT 사용
데이터 유효성 검사와 함께 Excel INDIRECT 기능을 사용하여 어떤 값에 따라 다른 선택 사항을 표시하는 계단식 드롭다운 목록을 만들 수 있습니다. 첫 번째 드롭다운에서 선택한 사용자입니다.
간단한 종속 드롭다운 목록은 정말 쉽게 만들 수 있습니다. 필요한 것은 드롭다운 항목을 저장하기 위한 이름이 지정된 범위 몇 개와 A2가 첫 번째 드롭다운 목록을 표시하는 셀인 간단한 =INDIRECT(A2)
공식입니다.
복잡함을 더하기 위해여러 단어로 된 항목이 있는 3단계 메뉴 또는 드롭다운에는 중첩된 SUBSTITUTE 함수가 있는 좀 더 복잡한 INDIRECT 공식이 필요합니다.
INDIRECT를 사용하는 방법에 대한 자세한 단계별 지침은 다음과 같습니다. Excel 데이터 유효성 검사는 Excel에서 종속 드롭다운 목록을 만드는 방법 튜토리얼을 확인하십시오.
Excel INDIRECT 함수 - 가능한 오류 및 문제
위의 예에서 설명한 것처럼 INDIRECT 함수는 셀 및 범위 참조를 처리할 때 매우 유용합니다. 그러나 Excel 수식에서 INDIRECT를 광범위하게 사용하면 투명성이 부족하기 때문에 모든 Excel 사용자가 이를 기꺼이 받아들이는 것은 아닙니다. INDIRECT 함수는 그것이 참조하는 셀이 수식에 사용된 값의 궁극적인 위치가 아니기 때문에 검토하기 어렵습니다. 이는 특히 크고 복잡한 수식으로 작업할 때 실제로 매우 혼란스럽습니다.
게다가 위에서 말했듯이 다른 Excel 함수와 마찬가지로 INDIRECT 함수의 인수를 잘못 사용하면 오류가 발생할 수 있습니다. 다음은 가장 일반적인 실수 목록입니다.
Excel INDIRECT #REF! error
대부분 INDIRECT 함수는 #REF! 세 가지 경우 오류:
- ref_text는 유효한 셀 참조가 아닙니다 . 간접 수식의 ref_text 매개변수가 유효한 셀 참조가 아닌 경우 수식은 #REF! 오류 값. 가능한 문제를 방지하려면 INDIRECT 기능의인수.
- 범위 제한을 초과했습니다 . 간접 수식의 ref_text 인수가 행 제한 1,048,576 또는 열 제한 16,384를 초과하는 셀 범위를 참조하는 경우 Excel 2007, 2010 및 Excel 2013에서도 #REF 오류가 발생합니다. 이전 Excel 버전에서는 초과된 값을 무시합니다. 일부 값을 제한하고 반환하지만 종종 예상한 값이 아닙니다.
- 참조된 시트 또는 통합 문서가 닫힙니다. 간접 수식이 다른 Excel 통합 문서 또는 워크시트를 참조하는 경우 해당 다른 통합 문서/스프레드시트가 열려 있어야 합니다. 그렇지 않으면 INDIRECT에서 #REF! 오류.
Excel INDIRECT #NAME? error
이것은 함수 이름에 약간의 오류가 있음을 암시하는 가장 명백한 경우이며 다음 사항으로 안내합니다. )
영어가 아닌 로케일에서 INDIRECT 함수 사용
INDIRECT 함수의 영어 이름이 다음을 포함하여 14개 언어로 번역되었다는 사실이 궁금하실 수 있습니다.
|
|
전체 목록에 관심이 있으시면 이 페이지를 확인하십시오.
비영어권 현지화의 일반적인 문제는INDIRECT 함수의 이름이 아니라 목록 구분 기호 에 대해 다른 지역 설정 입니다. 북미 및 일부 기타 국가의 표준 Windows 구성에서 기본 목록 구분 기호 는 쉼표입니다. 유럽 국가에서는 쉼표가 소수점 기호 로 예약되고 목록 구분 기호 가 세미콜론으로 설정됩니다.
따라서 둘 사이에 수식을 복사할 때 Excel 로캘이 다를 경우 수식에 사용된 목록 구분 기호 가 시스템에 설정된 것과 다르기 때문에 " 이 수식에 문제가 있습니다... "라는 오류 메시지가 표시될 수 있습니다. 이 자습서의 일부 INDIRECT 수식을 Excel로 복사할 때 이 오류가 발생하면 모든 쉼표(,)를 세미콜론(;)으로 바꾸면 문제가 해결됩니다.
어떤 목록 구분 기호와 소수 기호가 있는지 확인하려면 설정하고 제어판 을 열고 지역 및 언어 > 추가 설정 .
이 자습서가 Excel에서 INDIRECT를 사용하는 방법에 대해 설명했기를 바랍니다. 이제 그 강점과 한계를 알게 되었으므로 INDIRECT 함수가 어떻게 Excel 작업을 단순화할 수 있는지 살펴보겠습니다. 읽어주셔서 감사합니다!
함수의 인수, 맞죠? 먼저 Excel INDIRECT 구문을 간단히 살펴보겠습니다.INDIRECT 함수 구문
Excel의 INDIRECT 함수는 텍스트 문자열에서 셀 참조를 반환합니다. 여기에는 두 개의 인수가 있으며 첫 번째는 필수이고 두 번째는 선택 사항입니다.
INDIRECT(ref_text, [a1])ref_text - 셀 참조 또는 텍스트 문자열의 형식 또는 명명된 범위입니다.
a1 - ref_text 인수에 포함된 참조 유형을 지정하는 논리 값입니다.
- TRUE이거나 생략된 경우 ref_text는 A1 스타일 셀 참조로 해석됩니다.
- FALSE인 경우 ref_text는 R1C1 참조로 처리됩니다.
R1C1 참조 유형은 다음과 같을 수 있습니다. 특정 상황에서 유용하므로 대부분의 경우 친숙한 A1 참조를 사용하고 싶을 것입니다. 어쨌든 이 자습서의 거의 모든 INDIRECT 수식은 A1 참조를 사용하므로 두 번째 인수는 생략합니다.
INDIRECT 함수의 기본 사용
함수의 통찰력을 얻으려면 Excel에서 INDIRECT를 사용하는 방법을 보여주는 간단한 수식입니다.
셀 A1에 숫자 3이 있고 셀 C1에 텍스트 A1 가 있다고 가정합니다. 이제 수식 =INDIRECT(C1)
을 다른 셀에 입력하고 어떤 일이 발생하는지 확인합니다.
- INDIRECT 함수는 C1 셀의 값인 A1을 참조합니다.
- 함수는 다음으로 라우팅됩니다. 반환할 값을 선택하는 셀 A1,3번입니다.
그래서 이 예에서 INDIRECT 함수가 실제로 수행하는 작업은 텍스트 문자열을 셀 참조 로 변환하는 것입니다.
이 방법이 아직 실용성이 부족하다고 생각되시면 참고하세요. 그러면 Excel INDIRECT 함수의 진정한 힘을 보여주는 몇 가지 공식을 더 보여드리겠습니다.
Excel에서 INDIRECT를 사용하는 방법 - 공식 예제
위의 예에서 보듯이 엑셀의 INDIRECT 함수를 이용하여 한 셀의 주소를 다른 셀에 일반적인 문자열처럼 입력하고 두 번째 셀을 참조하여 첫 번째 셀의 값을 얻을 수 있습니다. 그러나 그 사소한 예는 INDIRECT 기능에 대한 힌트에 지나지 않습니다.
실제 데이터로 작업할 때 INDIRECT 함수는 모든 텍스트 문자열을 다음 값을 사용하여 구축하는 매우 복잡한 문자열을 포함하는 참조로 바꿀 수 있습니다 다른 Excel 수식에서 반환된 다른 셀 및 결과. 그러나 말 앞에 카트를 두지 말고 여러 Excel 간접 수식을 한 번에 하나씩 실행해 봅시다.
셀 값에서 간접 참조 만들기
기억하듯이 Excel INDIRECT 함수를 사용하면 다음을 수행할 수 있습니다. A1 및 R1C1 참조 스타일용. 일반적으로 한 번에 하나의 시트에서 두 스타일을 모두 사용할 수 없으며 파일 > 옵션 > 공식 > R1C1 확인란 . 이것이 Excel 사용자가 R1C1 사용을 거의 고려하지 않는 이유입니다.대체 참조 방식으로.
INDIRECT 수식에서는 원하는 경우 동일한 시트에서 참조 유형 중 하나를 사용할 수 있습니다. 더 진행하기 전에 A1과 R1C1 참조 스타일의 차이점을 알고 싶을 수 있습니다.
A1 스타일 은 행 뒤에 오는 열을 참조하는 Excel의 일반적인 참조 유형입니다. 숫자. 예를 들어 B2는 열 B와 행 2의 교차점에 있는 셀을 참조합니다.
R1C1 스타일 은 반대 참조 유형입니다. to : ) 예를 들어, R4C1은 시트의 행 4, 열 1에 있는 셀 A4를 참조합니다. 문자 다음에 숫자가 오지 않으면 동일한 행이나 열을 참조하는 것입니다.
이제 INDIRECT 함수가 A1 및 R1C1 참조를 처리하는 방법을 살펴보겠습니다.
에서 볼 수 있듯이 위의 스크린샷에서 세 가지 다른 간접 수식은 동일한 결과를 반환합니다. 이미 이유를 알아냈습니까? )
- 셀 D1의 공식:
=INDIRECT(C1)
이것이 가장 쉬운 공식입니다. 수식은 셀 C1을 참조하고 값을 가져옵니다. 텍스트 문자열 A2 를 셀 참조로 변환하고 셀 A2로 이동하여 해당 값인 222를 반환합니다.
- 셀 D3의 수식:
=INDIRECT(C3,FALSE)
두 번째 인수의 FALSE는 참조된 값(C3)이 R1C1 셀 참조, 즉 행 번호 다음에 열 번호가 오는 것처럼 처리되어야 함을 나타냅니다. 그러므로,우리의 INDIRECT 수식은 셀 C3(R2C1)의 값을 행 2와 열 1이 결합된 셀 A2에 대한 참조로 해석합니다.
셀 값과 텍스트에서 간접 참조 만들기
셀 값에서 참조를 생성한 것과 유사하게 연결 연산자(&)와 함께 연결된 INDIRECT 공식 내에서 텍스트 문자열 과 셀 참조 를 결합할 수 있습니다 .
다음 예에서 수식: =INDIRECT("B"&C2)는 다음 논리 체인을 기반으로 셀 B2의 값을 반환합니다.
INDIRECT 함수는 요소를 연결합니다. ref_text 인수 - 텍스트 B 및 셀 C2의 값 -> 셀 C2의 값은 숫자 2이며 셀 B2를 참조합니다 -> 수식은 셀 B2로 이동하여 해당 값(숫자 10)을 반환합니다.
이름이 지정된 범위와 함께 INDIRECT 함수 사용
셀 및 텍스트 값에서 참조를 만드는 것 외에도 Excel 명명된 범위 를 참조하는 INDIRECT 함수.
시트에 다음과 같은 이름이 지정된 범위가 있다고 가정합니다.
- Apples - B2:B6
- Bananas - C2:C6
- Lemons - D2:D6
위의 명명된 범위에 대한 Excel 동적 참조를 만들려면 일부 셀에 해당 이름을 입력합니다. G1, 간접 수식 =INDIRECT(G1)
에서 해당 셀을 참조합니다.
이제 한 단계 더 나아가 이 간접 수식을 삽입할 수 있습니다.주어진 명명된 범위에 있는 값의 합계와 평균을 계산하거나 다음 범위 내에서 최대값/최소값을 찾기 위해 다른 Excel 함수로 변환:
-
=SUM(INDIRECT(G1))
-
=AVERAGE(INDIRECT(G1))
-
=MAX(INDIRECT(G1))
-
=MIN(INDIRECT(G1))
이제 Excel에서 INDIRECT 함수를 사용하는 방법에 대한 일반적인 아이디어를 얻었으므로 더 강력한 수식을 실험할 수 있습니다.
다른 워크시트를 동적으로 참조하는 INDIRECT 수식
Excel INDIRECT 함수의 유용성은 "동적" 셀 참조를 작성하는 데 국한되지 않습니다. 또한 이를 활용하여 다른 워크시트의 셀을 "즉석에서" 참조할 수 있으며 그 방법은 다음과 같습니다.
시트 1에 중요한 데이터가 있고 해당 데이터를 시트 2로 가져오려고 한다고 가정합니다. 다음 스크린샷은 Excel 간접 수식이 이 작업을 처리하는 방법을 보여줍니다.
스크린샷에 표시된 수식을 분리하여 이해해 보겠습니다.
아시다시피 다른 시트를 참조하는 일반적인 방법은 Excel에서는 SheetName!Range 과 같이 시트 이름 뒤에 느낌표와 셀/범위 참조를 씁니다. 시트 이름에는 공백이 포함되는 경우가 많으므로 'My Sheet!'$A$1<2와 같이 오류를 방지하기 위해 시트 이름(공백이 아닌 이름)을 작은따옴표로 묶는 것이 좋습니다>.
이제 해야 할 일은 한 셀에 시트 이름을 입력하고 다른 셀에 셀 주소를 입력하고 텍스트 문자열로 연결한 다음 해당 문자열을간접 기능. 텍스트 문자열에서 셀 주소나 숫자가 아닌 각 요소를 큰따옴표로 묶고 연결 연산자(&)를 사용하여 모든 요소를 연결해야 합니다.
위와 같이 다음 패턴:
INDIRECT("'" & 시트 이름 & "'!" & 데이터를 가져올 셀 )예제로 돌아가서 위의 스크린샷과 같이 셀 A1에 시트 이름을 입력하고 B열에 셀 주소를 입력합니다. 결과적으로 다음 수식을 얻습니다.
INDIRECT("'" & $A$1 & "'!" & B1)
또한 수식을 여러 셀에 복사하는 경우 다음을 사용하여 시트 이름에 대한 참조를 잠가야 합니다. $A$1.
과 같은 절대 셀 참조
- 두 번째 시트의 이름과 셀 주소(위 수식에서 A1 및 B1)를 포함하는 셀 중 하나가 비어 있는 경우 , 간접 수식이 오류를 반환합니다. 이를 방지하기 위해 IF 함수에 INDIRECT 함수를 래핑할 수 있습니다.
IF(OR($A$1="",B1=""), "", INDIRECT("'" & $A$1 & "'!" & B1))
- 다른 시트를 참조하는 INDIRECT 수식이 올바르게 작동하려면 참조된 시트가 열려 있어야 합니다. 수식은 #REF 오류를 반환합니다. 오류를 방지하려면 어떤 오류가 발생하든 빈 문자열을 표시하는 IFERROR 함수를 사용할 수 있습니다.
IFERROR(INDIRECT("'" & $A$1 & "'!" &B1), "")
다른 통합 문서에 대한 Excel 동적 참조 만들기
간접 공식다른 Excel 통합 문서에 대한 참조는 다른 스프레드시트에 대한 참조와 동일한 접근 방식을 기반으로 합니다. 통합 문서의 이름을 시트 이름과 셀 주소에 추가하기만 하면 됩니다.
일을 더 쉽게 하기 위해 일반적인 방법으로 다른 책에 대한 참조를 만드는 것부터 시작하겠습니다(책의 경우 아포스트로피가 추가됩니다) 및/또는 시트 이름에 공백 포함):
'[Book_name.xlsx]Sheet_name'!Range
책 이름이 A2 셀에 있고 시트 이름이 B2에 있다고 가정하고 셀 주소가 C2에 있으면 다음 공식을 얻습니다.
=INDIRECT("'[" & $A$2 & "]" & $B$2 & "'!" & C2)
수식을 다른 셀에 복사할 때 책 이름과 시트 이름이 포함된 셀이 변경되는 것을 원하지 않으므로 각각 $A$2 및 $B$2 절대 셀 참조를 사용하여 잠급니다.
이제 다음 패턴을 사용하여 다른 Excel 통합 문서에 대한 고유한 동적 참조를 쉽게 작성할 수 있습니다.
=INDIRECT("'[" & Book name & " ]" & 시트 이름 & "'!" & 셀 주소 )참고. 수식이 참조하는 통합 문서는 항상 열려 있어야 합니다. 그렇지 않으면 INDIRECT 함수에서 #REF 오류가 발생합니다. 여느 때처럼 IFERROR 함수를 사용하면 이를 방지할 수 있습니다.
=IFERROR(INDIRECT("'[" & A2 & "]" & $A$1 & "'!" & B1), "")
Excel INDIRECT 함수를 사용하여 셀 참조 잠그기
일반적으로 Microsoft Excel은 삽입할 때 셀 참조를 변경합니다. 시트의 기존 행이나 열을 새로 만들거나 삭제합니다. 이러한 일이 발생하지 않도록 하려면 다음을 수행하십시오.어떤 경우에도 그대로 유지되어야 하는 셀 참조로 작업하려면 INDIRECT 함수를 사용하십시오.
차이점을 설명하기 위해 다음을 수행하십시오.
- 셀에 값을 입력하십시오. , 셀 A1의 번호 20.
- 다른 두 셀에서 A1을 서로 다른 방식으로 참조:
=A1
및=INDIRECT("A1")
- 행 1 위에 새 행을 삽입합니다.
무슨 일이 일어나는지 봅니까? 같음 논리 연산자가 있는 셀은 수식이 자동으로 =A2로 변경되었기 때문에 여전히 20을 반환합니다. INDIRECT 수식이 있는 셀은 이제 0을 반환합니다. 새 행이 삽입되었을 때 수식이 변경되지 않았고 여전히 현재 비어 있는 A1 셀을 참조하기 때문입니다.
이 데모 후에 INDIRECT 기능이 도움이 되기보다 성가신 일이라는 인상. 다른 방법으로 시도해 보겠습니다.
A2:A5 셀의 값을 합산하고 SUM 함수를 사용하여 쉽게 계산할 수 있다고 가정해 보겠습니다.
=SUM(A2:A5)
그러나 얼마나 많은 행이 삭제되거나 삽입되더라도 수식은 변경되지 않은 상태로 유지되기를 원합니다. 절대 참조를 사용하는 가장 확실한 해결책은 도움이 되지 않습니다. 확인하려면 일부 셀에 수식 =SUM($A$2:$A$5)
을 입력하고 행 3에 새 행을 삽입하고… =SUM($A$2:$A$6)
로 변환된 수식을 찾습니다. 사례. 그럼에도 불구하고 수식이 변경되는 것을 원하지 않는 시나리오가 있을 수 있습니다.