메뉴
찾기 및 참조
INDIRECT 함수
엑셀 2003
찾기 및 참조
INDIRECT 함수
엑셀-INDIRECT-함수-사용법
함수 요약

엑셀 INDIRECT 함수는 텍스트로 작성된 셀 주소를 직접 참조하여 해당 셀의 값을 반환하는 함수입니다.

함수 구문
=INDIRECT(참조범위, [참조방식])
참조범위
-
참조할 셀이나 범위 주소입니다. 다른 통합문서나 다른 시트의 셀주소를 참조할 수 있습니다.
  • 다른 시트를 참조할 경우, "'시트명'!A1" 형식으로 작성합니다.
  • 다른 통합문서를 참조할 경우, '[통합문서1]Sheet1'!A1" 형식으로 작성합니다.
참조방식
-
[선택인수]셀 주소를 참조할 방식입니다. 기본값은 TRUE(=A1방식) 입니다.
  • TRUE : [기본값] A1 스타일
  • FALSE : R1C1 스타일
상세 설명

엑셀 INDIRECT 함수는 텍스트로 작성된 셀이나 범위 주소를 직접 참조하여 해당 셀이나 범위의 값을 반환하는 함수입니다. 이 함수를 사용하면 셀이나 범위를 동적으로 참조할 수 있어 유연한 수식 작성이 가능합니다.

=INDIRECT("A1")
/ / A1셀의 값을 반환합니다.
=INDIRECT("A" & DAY(TODAY()))
/ / 오늘 날짜의 일에 따라 A1 ~ A31 까지 범위를 참조합니다.

특히 다른 함수나 셀의 값을 기반으로 동적으로 범위를 참조하는 자동화 함수를 작성할 때 유용하게 사용할 수 있습니다.

=INDIRECT("'" & A1 & "'!C1:C100")
/ / A1셀에 작성된 시트의 C1:C100 범위를 참조합니다.
=SUM(INDIRECT("'" & A1 & "'!C1:C100"))
/ / A1셀에 작성된 시트에서 C1:C100 범위의 합계를 구합니다.

만약 다른 통합문서를 참조할 경우, INDIRECT 함수는 다음과 같이 작성합니다.

= INDIRECT("'[통합문서1]Sheet1'!"&"A1")

INDIRECT 함수 간단 예제
1) 사용자 입력에 따라 셀을 동적으로 참조하기

다음과 같이 수식을 작성하면, A1셀에 작성된 셀 주소의 값을 동적으로 참조합니다.

=INDIRECT(A1)
/ / A1셀이 "B5"일 경우 B5셀의 값을 반환합니다.
2) 다른 시트의 데이터를 동적으로 참조하기

다음과 같이 수식을 작성하면, A1셀에 작성한 시트의 특정 범위를 동적으로 참조할 수 있습니다.

=INDIRECT("'" & A1 & "'!B1")
/ / A1셀에 "1월"이 입력된 경우, 1월 시트의 B1셀을 참조합니다.
3) 여러 시트 데이터를 동적으로 VLOOKUP 하기

다음과 같이 VLOOKUP 함수와 INDIRECT 함수를 함께 사용해서, 여러 시트의 데이터를 동적으로 검색하는 공식을 작성할 수 있습니다.

=VLOOKUP("김하늘",INDIRECT("'" & A1 & "'!A:C"),2,0)
/ / A1셀에 "2월"이 입력된 경우, '김하늘' 직원의 2월 매출을 검색합니다.
/ / A1셀에 "4월"이 입력된 경우, '김하늘' 직원의 4월 매출을 검색합니다.

INDIRECT 함수 + VLOOKUP 함수 공식의 자세한 동작 원리는 아래 기초 입문 강의에서 꼼꼼히 정리했으니 참고하세요!👇


4) 다른 통합문서의 범위를 동적으로 참조하기

다음과 같이 INDIRECT 함수를 작성하면 다른 통합문서의 데이터를 동적으로 참조할 수 있습니다. 단, 참조하려는 통합문서는 반드시 열려있어야 합니다.

=INDIRECT("'[예산.xlsx]Sheet1'!A1")
/ / 예산이라는 통합문서에서 Sheet1 시트의 A1셀을 참조합니다.

그 외 주의사항

INDIRECT 함수는 참조하는 셀의 값만 반환하며 서식은 반환하지 않습니다. 예를 들어, 참조하는 셀이 통화서식($4.00)으로 작성되어 있더라도, INDIRECT 함수는 '4'를 반환합니다.

참조할 범위가 유효하지 않을 경우, INDIRECT 함수는 #REF! 오류를 반환합니다.

INDIRECT 함수로 다른 통합문서나 시트를 참조할 경우, 통합문서는 대괄호("[]"), 시트는 느낌표("!")로 구분하여 입력합니다.

=INDIRECT("[직원정보.xlsx]"&"Sheet1!"&"A1")
/ / 직원정보 파일에서 Sheet1 시트의 A1셀을 참조합니다.

INDIRECT 함수의 기본 참조방식은 A1 방식입니다. 만약 R1C1 방식으로 셀을 참조할 경우 두번째 인수인 참조방식을 FALSE로 입력하세요.


댓글 65
4.9 (36개 평가)
엑린이
엑린이 2020.04.19 23:45
잘 배우고 갑니다
신입사원
신입사원 2020.07.07 09:30
안녕하세요. 설명 너무 잘 들었습니다. 그런데 혹시 =VLOOKUP(E5,INDIRECT("D:\work\2020_1분기\정보센터\통계\[5월_현황(일반현황).xls]"&"sheet1'!"&"$A$7:$R$1324"),2,FALSE) =VLOOKUP(E5,INDIRECT("[5월_현황(일반현황).xls]"&"sheet1'!"&"$A$7:$R$1324"),2,FALSE) 이 두 식을 사용하면 둘 다 해당 엑셀 통합 문서를 열어놨음에도 불구하고 #REF! 오류가 뜹니다. 왜 그런지 이유를 모르겠습니다... 그리고 다른 통합 문서의 시트를 참고할 때는 전자처럼 주소를 써줘야 하는지, 아닌지도 궁금합니다. 혹시 몰라서 같은 폴더에도 넣어보고 해당 폴더(D:\work\2020_1분기\정보센터\통계)에도 넣어봤지만 둘 다 참조를 못해서요.. 혹시 방법이 잘못 되었을까요?
오빠두엑셀
오빠두엑셀 작성자 2020.07.07 16:22
안녕하세요?^^ =VLOOKUP(E5,INDIRECT("[5월_현황(일반현황).xls]"&"sheet1'!"&"$A$7:$R$1324"),2,FALSE) Sheet1과 ! 사이에 [ ' ] 보이시나요? ' 가 ! 전에 추가되었으므로, 파일명 맨 앞에도 [ ' ] 를 추가해주셔야 합니다. '(홑따옴표)만 추가하시면 바로 해결될겁니다.^^
HKim
HKim 2021.03.02 23:30
안녕하세요. 질문이 있어서 댓글 남깁니다. 제가 월별로 관리하는 시트가 있는데, 2월을 예로 들면, 시트는 일자별(0201 ~ 0228)까지 되어 있고, 월간 통계를 위해서 하나의 시트가 추가 되는 형식입니다. 입력되는 양식이 일정하다보니, 월간 통계를 위해서 =SUM('0201:0228'!AB5) 이런 식으로 합계를 구하고 있습니다. 그런데, 시트에서 합계를 구하는 부분이 많다보니 매월 새로운 시트의 수식을 변경을하기가 어려워서 INDIRECT 함수를 사용해서 변경을 하려고 합니다. 그런데, 이게 다중셀 계산이라서 그런지, 제가 할줄 모르는건지... 계속 에러(#REF!)가 뜨네요. 혹시 해결 방안이 있을까요?
오빠두엑셀
오빠두엑셀 작성자 2021.03.03 21:58
안녕하세요. 적어주신 내용만으로는 정확히 무엇이 원인인지 확인이 어렵습니다. INDIRECT 함수로 범위를 올바르게 참조하였는지 다시 확인해보세요. 수식은 아래와 같이 입력하시면 됩니다.
=SUM(INDIRECT("'0201:0228'!AB5"))
또는 아래 커뮤니티 게시판을 통해 질문을 올려주시면 다른 여러 엑셀 전문가분께 답변을 받으실 수 있습니다.
안재모
안재모 2021.03.23 22:42
항상 강의 잘듣고 있습니다. 제공해주신 파일의 Sheet1!D12의 내용과 E12의 실제 입력된 함수가 다릅니다. 제가 보기엔 D12가 오타인것 같습니다.
오빠두엑셀
오빠두엑셀 작성자 2021.03.29 16:22
안녕하세요 :) 말씀해주신 내용 수정하였습니다. 확인해주셔서 감사드립니다.
엑셀뉴비
엑셀뉴비 2021.03.31 16:01
indirect 함수를 잘 배웠습니다. 저는 =INDIRECT("'X:\공부\엑셀공부\상위폴더\하위폴더\최하위폴더\[연습.xlsx]"&"테스트'!"&"B2") 라는 식을 썼는데 처음에는 #REF!가 되더니 해당 파일을 열고 있으니 애러가 나지 않았습니다. 혹시 해당 파일을 열지 않더라도 그 파일의 내용을 들고오는 함수는 없을까요?
오빠두엑셀
오빠두엑셀 작성자 2021.04.03 20:34
안녕하세요. INDIRECT 함수는 현재 실행중인 파일만 참조할 수 있어요. 만약 닫혀져있는 파일을 참조하려면, INDIRECT 함수대신 =X:\공부\엑셀공부\상위폴더\하위폴더\최하위폴더\[연습.xlsx]테스트!B2 이런 식으로 값을 직접 참조해주셔야 합니다.
햄
2021.05.06 14:55
=INDIRECT("["&TEXT($B1,)&".xls]"&B2&"!B7") 저 궁금한 점이 있습니다.ㅠㅠ 파일명에 띄어쓰기가 들어가면 저 수식이 오류로 뜨는데, 작은따음표를 넣어도 안되어서요..ㅠㅠ 혹시 원인이 무엇인지 도움받을수있을까요?
오빠두엑셀
오빠두엑셀 작성자 2021.05.07 02:32
안녕하세요. 수식을 아래처럼 바꿔보시겠어요?
INDIRECT("'["&TEXT($B1,)&".xls]"&B2&"'!B7")
홑따옴표(') 를 양 끝으로 넣어주시면 됩니다.
엑셀잘하고싶어
엑셀잘하고싶어 2021.06.08 13:09
INDIRECT 함수를 사용하지 않고도 등호(=)를 사용해서 다른 통합문서의 값이나 수식을 참조할 수 있는 것으로 알고있는데, 굳이 INDIRECT함수를 사용하는 이유가 있는지 궁금합니다. 뭔가 메리트가 있는건가요?
진규
진규 2023.05.10 08:45
시트가 여러개일 경우 빠르게 참조하기 위함입니다.
똥개업마
똥개업마 2021.11.03 13:25
감사합니다.
초보사무원
초보사무원 2021.12.23 09:23
안녕하세요 엑셀초보 사무원 입니다. ='C:\Users\user\Desktop\[4분기.xlsx]&text(a5,"MM-DD")&"'!O34" 이렇게 다른 파일의 시트의 셀값을 가져오려하는데 "워크시트 수식에 일부 잘못된 참조가 있습니다" 라고 뜹니다. 따옴표와 큰따옴표의 위치를 못잡겠어요 ㅠㅠ 부디 도와주세요
오빠두엑셀
오빠두엑셀 작성자 2021.12.26 09:34
안녕하세요?^^ 수식을 아래처럼 수정해보세요.
="'C:\Users\user\Desktop\[4분기.xlsx]/;&text(a5,"MM-DD")&"'!O34"
taem
taem 2022.02.04 15:45
원래 적용이 되어있는 시트에서 항목을 추가하여 사용하려고 하니 오류가 나네요 =INDIRECT(C3&"!l14") C3이 시트명이고 불러올값은 L14인데 오류가 나는데 뭐가 잘못된걸까요?
오빠두엑셀
오빠두엑셀 작성자 2022.02.06 18:36
안녕하세요? 수식을 아래와 같이 수정해보시겠어요?
=INDIRECT( "'" & C3 & "'!" & l14)
taem
taem 2022.02.07 10:06
시트명 C3에 있는 L14 값을 불러와야 하는데 알려주신 수식은 시트의 L14값이 불러와지네요
CLAIRE
CLAIRE 2022.02.15 04:31
질문드립니다. 예를 들어 상위 목록이 10개이고, 그 각각의 하위 목록들이 있을때. 하위 목록 부분에서 INDIRECT할때, 하위 목록이 여러개가 무작위로 반복될 경우 어떻게 동일 컬럼에서 EXTEND 시키는지 궁금합니다.
CLAIRE
CLAIRE 2022.02.15 04:38
추가설명: 하위 목록1 로우: 딜리버리 부서의 문제점 몇가지 하위 목록2 로우: 캐드부서의 문제점 몇가지\ 하위 목록3 로우: 서비스팀의 문제점 몇가지 하위 목록4로우: 서플라이팀의 문제점 몇가지 .... .... .... .... 이렇게 여러가지 부서의 문제점을 하위 목록으로 잡습니다만, 그 반복의 순서가 무작위 입니다. 그러면 어떻게 그 칼럼에서 DATA VALIDATION하는지 모르겠어요. 지금은 각각 같은 상위 목록을 갖고 있는 셀들 여러개를 하나로 잡아서 데이터 밸리데이션을 해주고 있습니다...
WALI
WALI 2022.02.15 23:11
1번 상위개념 밑에 하위 개념 여러개의 드랍리스트(10개)를 만들었고, 그 드랍리스트의 하위 개념 리스트들이 있을때, 그리고 그 리스트들이 무작위로 반복되어 나올때, 유효성 검사를 해서 어떻게 조건들을 EXTEND 시키나요? 저는 같은 하위 리스트들을 모두 찾아서 같이 블록해서 유효성 검사를 하는데요, 문제는 다음 로우에 상위 리스트중 한개를 다시 입력했을때 그에 맞는 하위 리스트가 팝업되게 하려면 어떤 조건을 사용해야 하는건가요?
오빠두엑셀
오빠두엑셀 작성자 2022.02.17 18:13
안녕하세요. 말씀하신 기능은 '다중유효성검사 목록상자'가 아닐까 생각됩니다. 아래 두 강의를 한번 참고해보시겠어요? 표를 사용하는 방법 : https://www.oppadu.com/%ec%97%91%ec%85%80-%eb%8b%a4%ec%a4%91%ec%a1%b0%ea%b1%b4-%eb%aa%a9%eb%a1%9d%ec%83%81%ec%9e%90-%eb%8b%a4%ec%a4%91-%eb%8d%b0%ec%9d%b4%ed%84%b0-%ec%9c%a0%ed%9a%a8%ec%84%b1%ea%b2%80%ec%82%ac/ 동적범위를 사용하는 방법 : https://www.oppadu.com/%ec%97%91%ec%85%80-%eb%8b%a4%ec%a4%91-%eb%8d%b0%ec%9d%b4%ed%84%b0%ec%9c%a0%ed%9a%a8%ec%84%b1-%ea%b2%80%ec%82%ac-%ed%95%a8%ec%88%98/
차현준
차현준 2022.03.30 13:40
INDIRECT("[통합문서1]"&"Sheet1!"&"A1") '// 통합문서1의 Sheet1시트의 A1셀을 참조에서 Sheet1 대신 day(날짜) 함수 대체하는 방법은 없나요
오빠두엑셀
오빠두엑셀 작성자 2022.04.01 16:23
= INDIRECT("[통합문서1]"&DAY(날짜)&"!A1") 위와 같이 한번 사용해보세요.
진눈깨비
진눈깨비 2022.07.01 14:59
INDIRECT함수는 동적범위를 사용할때 #REF! 오류가 나는데 동적범위 이름은 사용할수 없나요...
오빠두엑셀
오빠두엑셀 작성자 2022.07.03 18:07
안녕하세요. INDIRECT 함수로는 동적범위를 사용할 수 없습니다.
독고진
독고진 2022.10.20 11:48
위 예제에서, indirect식을 바로 1행 아래 셀에 복사붙여넣기를 해도, "A1"값이 변하지 않습니다. "A1" 값이 변하지 않았으니까 그렇겠지요. 그렇다면, 상대참조 주소의 장점을 사용할 수는 없다는 말이군요?
오빠두엑셀
오빠두엑셀 작성자 2022.10.23 19:05
안녕하세요. 수식을 아래와 같이 사용해보세요.
=INDIRECT("A"&ROW())
적절히 수정해서 사용하면 다양한 방법으로 자동화서식을 만드는데 활용할 수 있습니다.^^
가영
가영 2023.02.07 10:35
=SUMIFS(INDIRECT(F6&"!$I$16:$I$37"),INDIRECT(F6&"!$F$16:$F$37"),">="&$G$11,INDIRECT(F6&"!$F$16:$F$37"),"<="&$I$11) 수식에서 f6에 시트이름을 적고 불러오고 싶습니다 어떻게 해야될까요?
오빠두엑셀
오빠두엑셀 작성자 2023.02.09 16:53
안녕하세요. 기존 INDIRECT 함수를 아래와 같이 수정해보세요. INDIRECT(F6&"!$I$16:$I$37") → INDIRECT("'" & F6&"'!$I$16:$I$37") 시트이름에 띄어쓰기가 있을 경우 작은 따옴표(')로 묶어서 사용합니다. 아래 강의도 함께 참고해보세요. https://www.oppadu.com/%ec%a7%84%ec%a7%9c%ec%93%b0%eb%8a%94-%ec%8b%a4%eb%ac%b4%ec%97%91%ec%85%80-7-3-7/
방
2023.04.06 10:30
안녕하세요, indirect함수로 다른파일에 있는 내용을 참조하는 것 까지는 확인하였는데요, 혹시 여기에 address를 결합할 수 있을까요? 예를들면, 아래의 함수에서 =INDIRECT("[data.xlsx]"&"Sheet1!"&"A1") A1 셀 부분을 address로 참조 하고 싶거든요. 구체적으로는 열로 이어서 참조하는 걸 행으로 바꾸고 싶어서 그렇습니다.
오빠두엑셀
오빠두엑셀 작성자 2023.04.06 17:34
안녕하세요. 아래 함수를 활용해보세요. =ADDRESS(ROW(A1),COLUMN(A1))
꿀잠
꿀잠 2023.04.24 16:28
안녕하세요 질문 하나 드리고 싶습니다! =X:\공부\엑셀공부\상위폴더\하위폴더\최하위폴더\[연습.xlsx]테스트!B2의 경우 파일명을 텍스트형식으로 참조를 걸 수는 없을까요? 현재 '연습'이라는 파일의 B2값을 가지고 온다면, 가령 '연습2'라는 파일의 B2값을 가지고 오고 싶을 때 =X:\공부\엑셀공부\상위폴더\하위폴더\최하위폴더\[연습2.xlsx]테스트!B2 대신에 해당 엑셀 시트 내에서 연습2 라는 텍스트를 기재하고 여기에 있는 텍스트에 해당하는 파일명의 B2 값을 가져온다... 이런 식으로 할 수 있는지 궁금합니다.
오빠두엑셀
오빠두엑셀 작성자 2023.05.05 02:27
안녕하세요. 네 가능합니다. "C:\"&폴더명"&"\하위폴더..." 와 같이 & 기호로 연결해서 작성해보세요.
진규
진규 2023.05.10 08:43
시트 이름이 4-3 이런식으로 되어있을 경우 어떻게 참조하면 될까요?
오빠두엑셀
오빠두엑셀 작성자 2023.05.15 17:07
안녕하세요.
=INDIRECT("'"&셀주소&"'!A1")
과 같이 시트 이름을 ' (작은따옴표)로 묶어서 함수를 작성해보세요.
bummie0927
bummie0927 2023.06.19 19:48
안녕하세요 엑셀 관련 매번 좋은 아이디어 받고 항상 감사드립니다. 외부 참조 관련하여 아래 질문드리고 싶습니다. <사용 함수①> =XLOOKUP($A31,'\\192.168.0.10\회사 폴더\[제품 리스트.xlsx]시트이름'!$B:$B,'\\192.168.0.10\회사 폴더\[제품 리스트.xlsx]시트이름'!$C:$C) Q1. 해당 함수 사용 시, 함수가 있는 엑셀 파일을 열고 난 후에, 외부 참조 엑셀 파일인 [제품 리스트.xlsx]를 열면 함수가 #REF! 오류가 나면서 기존 함수들이 없어집니다. 해결 방법이 없을까요? <사용 함수②> =XLOOKUP($A31,"'\\192.168.0.10\회사 폴더\[제품 리스트.xlsx]"&"시트이름'!"&"$B:$B","'\\192.168.0.10\회사 폴더\[제품 리스트.xlsx]"&"시트이름'!"&"$C:$C") Q2. 혹시 직접 참조를 하면 외부참조 파일의 열람 여부와 관계없이 데이터를 자동으로 불러오는것이 가능할까 해서 위와 작성해보았는데, 아예 함수가 작동을 하지 않고 #N/A 로 오류가 나옵니다. 해결 할 수 있는 방법이 없을까요? ㅠㅠ Q3. 결론적으로 원하는 것은 회사 NAS 공유폴더 안에서 [인보이스.xlsx] 라는 파일에서 XLOOKUP 함수를 통해 외부참조 엑셀파일인 [제품 리스트.xlsx] 안에 있는 제품들의 데이터들을 자동으로 끌어오고 싶습니다. 혹시 방법이 없을지 여쭤보고 싶습니다ㅠㅠ
오빠두엑셀
오빠두엑셀 작성자 2023.06.21 17:49
Q1. #REF! 오류는 참조 데이터가 완전히 삭제되어 발생하는 오류이므로, 해결 방법이 없습니다. Q2. INDIRECT 함수는 실행중인 파일에서만 데이터를 참조할 수 있습니다. 닫혀있는 파일에서도 불러오려면 =셀주소로 직접 참조해야 합니다. Q3. 함수를 사용해 닫혀있는 파일에서 불러오려면 "=셀주소" 형태로 직접 참조해야 합니다. 또는 파워쿼리와 같은 기능을 사용하는 방법도 있으니 한번 연구해보세요. 파워쿼리를 사용한 파일 취합 방법은 이전 라이브 강의를 참고해보시길 바랍니다. https://youtu.be/EzX4yS-AS5k 감사합니다.
MJ
MJ 2023.07.17 19:30
내용 잘 봤습니다. 감사합니다. 질문이 하나 있는데요, 저 같은 경우, =ADDRESS(MATCH(C6, 창고재고_종합!A3:A3085, 0),1) 를 이용하여 셀의 address를 가져왔고, =INDIRECT(EE6&"!ED6") 그 address를 이용하여 EE6 (창고재고_종합) sheet에서 특정 셀값을 가져오기를 원합니다. 즉, ED6($A$882)에 값(address)이 있고, 실제 찾을 값은 Q882에 있습니다. 네, 해당 low의 특정 column에 값이 있는 경우입니다. 이 경우 그 값을 가져올 수 있는 방법이 있을까요? 미리 감사 드립니다.
오빠두엑셀
오빠두엑셀 작성자 2023.07.27 22:02
안녕하세요. INDIRECT 함수의 두번째 인수를 'FALSE'로 하면 R1C1 스타일로 셀을 참조할 수 있습니다. 그럴 경우, 함수를
=INDIRECT("'시트명'!R1C1")
으로 작성해서 셀을 참조할 수 있습니다. 정확히 어떠한 방식을 원하시는지 모르겠으나, 남겨주신 질문만 보았을 때에는
=INDIRECT("'"&EE6&"'!"&ADDRESS함수)
로 해결할 수 있을 듯 합니다. 만약 행/열번호로 참조해야 할 경우 INDIRECT 함수의 두번쨰 인수를 FALSE로 사용해보세요.
jss****
jss**** 2023.08.24 13:56
안녕하세요. main 시트에서 각 시트 이름을 나열하고, indirect를 사용하여 각 시트(Sheet1~4)의 C3의 값의 합계를 구하려 합니다. 근데 계속 오류가 나네요..
이미지 002
오빠두엑셀
오빠두엑셀 작성자 2023.08.28 16:35
안녕하세요. INDIRECT 함수로는 3D참조(여러 시트를 동시에 참조 하는 것)이 불가능합니다. 3D 참조는 일부 함수에서만 제한적으로 사용가능합니다. 자세한 내용은 아래 링크를 확인해보세요. 여러 워크시트에서 동일한 셀 범위에 대한 3차원 참조 만들기 - Microsoft 지원
6ra70
6ra70 2024.01.02 17:06
저도 같은 고민 중인데요... 방안을 찾으셨나요?
그래그래
그래그래 2023.09.07 20:43
오빠두엑셀님, 감사합니다, INDIRECT 함수 사용법 공부하다가 한 가지 질문이 있어서요, 다른 스레드에 올렸는데 생각해보니 여기에 올려야 하는 질문이 맞는 것 같아서 다시 올려봅니다. 구글 검색하다가 동적범위 공식에 관해 오빠두엑셀님이 알려주신 방법을 응용하여 계산하려는 셀에 다음과 같이 공식을 집어넣고 아래로 자동 채워넣기 했더니 잘 됩니다~ =COUNTIF(연매출!$B2:INDIRECT("연매출!H"&연매출!$I$2+ROW(연매출!M2)-2),100) 근데, 제가 해놓고도 한 가지 궁금한 점이 생겨서요 입력한 공식이 COUNTIF 함수니까 COUNTIF(범위, 조건값) 이런 구조이고 (1) 연매출!$B2 = 범위 지정의 출발점 (2) INDIRECT("연매출!H"&연매출!$I$2+ROW(연매출!M2)-2) = 범위 지정의 종작점 (3) 100= 조건값 근데, (2)번의 종착점 셀위치를 입력한다고 하다가 잠시 헷갈려서 실수로(?) 위와 같이 집어넣었는데요 나중에 다시 생각해보니 INDIRECT 함수라서 연매출!Hㅇㅇ 셀을 찾아가서 그 셀에 들어있는 값을 반환하게 될텐데 (실제 이 셀들에 15000, 18000, 20000 등등 값이 들어있어요) 그럼 범위 지정하는 셀위치가 아니게 되어버리는 문제가 ㅠㅠ 결과적으로 COUNTIF 공식의 의미가 예를 들어 COUNTIF(연매출!$B2:15,000,100) 와 같이 되어 함수가 깨져버리고 에러가 나와야 하는데, 실제로는 에러 없이 계산값이 잘 나옵니다. 이 포스팅 안에는 SUM 함수 안에 INDIRECT 함수를 중첩시켜 집어넣으면 SUM 함수의 범위 지정이 가능한 것처럼 설명되어 있는 것 같은데 제가 이해한 게 맞는지요? INFIRECT 함수 자체가 원래 텍스트로 주어진 셀주소에 들어있는 값을 반환하는 기능이지만, SUM 함수나 COUNTIF 함수 안에 중첩시켜 사용하면 값을 반환하는 대신 범위 지정으로도 사용할 수 있는 것인지요? 기능이 다르다보니 영 헷갈리기만 합니다, 제가 뭘 잘못 이해하고 있는 걸지 가르침 한 수 부탁드립니다~
오빠두엑셀
오빠두엑셀 작성자 2023.09.11 18:18
안녕하세요. 네 맞습니다. INDIRECT 함수는 결과값으로 범위를 반환합니다. 따라서 아래와 같이, COUNTIF(또는 SUMIF) 함수의 범위 인수로 INDIRECT 함수를 사용할 수 있습니다.
=COUNTIF(INDIRECT("A1:A7"),"조건")
INDIRECT 함수는 말씀하신 것 처럼, INDIRECT("A"&ROW(...)) 형태로 작성해서 범위를 동적으로 참조하는 것도 가능합니다. 제시해드린 답변이 문제를 해결하시는데 도움이 되었길 바랍니다. 감사합니다.
Breeze
Breeze 2023.09.12 21:36
안녕하세요. 마이크로소프트 365를 pc, 웹, 어플리케이션에서 이용하고 있습니다. 선생님의 indierct 함수를 보고 작업 효율성이 높아졌는데 pc에서는 발생되지 않는 오류가 웹버전이나 어플리케이션(마이크로소프트365, excel)에서는 #VALUE! 오류를 내고 있습니다. 방법이 있을까요? =SUMIFS(INDIRECT("주차23."&W$1&"!$O:$O"),INDIRECT("주차23."&W$1&"!$A:$A"),@일보!$C:$C)
오빠두엑셀
오빠두엑셀 작성자 2023.09.14 21:57
안녕하세요. 데스크탑과 웹버전 엑셀의 경우 아직 완벽히 호환이 되지 않아 가끔씩 오류가 발생하곤 합니다. 문제가 해결 될 지 아주 정확하진 않지만, 시트이름에 포함된 마침표(.)를 제거한 후 다시 시도해 보시거나, 3번째 인수로 작성된 범위 중 "@일보" <- 범위가 잘 참조되는지 한번 확인해보시길 바랍니다. 감사합니다.
종이종이
종이종이 2023.09.29 11:44
아직 기본적인 사용밖에 못하지만, 많은 도움이 됐습니다!
Oddin
Oddin 2023.10.27 15:59
안녕하세요 하다가 도통 모르겠어서 댓글 남깁니다. =SUM(INDIRECT(LEN(sheet2!G207)-LEN(SUBSTITUTE(sheet2!G207,CHAR(10),""))+1)) 이런건 불가능한건가요? 시트 참조하여 날짜만 바꾸면 바로 그 셀에 있는 행 숫자를 가지고 오고 싶은데요.
오빠두엑셀
오빠두엑셀 작성자 2023.11.02 17:15
가능합니다.
=INDIRECT("'"&함수&"'!A1")
형태로 수식을 적절히 수정해서 사용해보세요. 감사합니다.
Near
Near 2023.11.02 17:21
INDIRECT로 불러온 값을 CTRL+F로 검색 되도록 하려면 어떻게 해야하나요?
오빠두엑셀
오빠두엑셀 작성자 2023.11.03 05:01
안녕하세요. 찾기에서 '고급옵션'의 찾는 위치를 '값'으로 설정 후 검색해보시길 바랍니다. 감사합니다.
강민준🤗
강민준🤗 2024.08.11 07:25
좋은 강의 감사합니다🙇‍♂️
보라색양털
보라색양털 2024.10.22 09:55
'=@INDIRECT', INDIRECT 함수 앞에 @ 문자가 붙으면 무슨 의미인가요??
오빠두엑셀
오빠두엑셀 작성자 2024.10.23 10:56
엑셀 2021 이후 버전에서 동적 배열로 입력된 수식을 엑셀 2019 이전 버전에서 실행할 시 표시되는 기호입니다. 자세한 설명은 아래 링크를 참고해보세요. https://support.microsoft.com/ko-kr/office/%EC%95%94%EC%8B%9C%EC%A0%81-%EA%B5%90%EC%A7%91%ED%95%A9-%EC%97%B0%EC%82%B0%EC%9E%90-ce3be07b-0101-4450-a24e-c1c999be2b34
이소
이소 2025.01.06 20:42
안녕하세요!!! IDIRECT함수 연습을 하고있습니다. 궁금한것은 시트이름이 오빠두(엑셀)인데 A1에는 오빠두만 적혀 있는 경우 IDIERCT함수에(엑셀)을 추가할 수 있는 방법이 있는지 궁금합니다. =INDIRECT(""&CONCATENATE(A1,"(","엑셀",")")&"!A1") 이런식으로는 안되는건지 궁금합니다.
오빠두엑셀
오빠두엑셀 작성자 2025.01.07 17:20
안녕하세요. =INDIRECT("'"&A1&"(엑셀)'!셀주소") 로 함수를 작성해보시길 바랍니다. 감사합니다.
강병준
강병준 2025.01.22 12:45
드디어 해결 됐어요 ㅠ 감사합니다.
GeneralGin
GeneralGin 2025.02.13 12:18
=CONCATENATE("{",join(";",unique(filter(E9:E,E9:E<>""))),"}") 여러시트의 범위를 합치는 배열범위를 CONCATENATE 로 만들고, 이렇게 나온 범위 {'시트1'!$a$1:$C;'시트2'!$a$1:$C;'시트3'!$a$5:$af} 를 QUERY 범위에 INDIRECT로 가져오려고 하니,, #REF 오류가 납니다. QUERY의 범위가 배열범위 일 때, 해당 범위를 함수로 지정하려면 어떻게 해야할까요?
오빠두엑셀
오빠두엑셀 작성자 2025.02.14 19:17
안녕하세요. 그런 경우 VSTACK 함수를 사용해 해당 배열을 하나로 합친 후 QUERY로 수행해보시길 바랍니다.
한량
한량 2025.08.19 14:54
감사합니다!!! 잘 쓰고 있습니다
아빠아파두
아빠아파두 2025.11.15 22:55
진짜쓰는 실무엑셀의 Page 96에 보면, M10에 =indirect(M8) indirect(M9) 를 입력하면 M8의 내용이 참조하는 범위와 M9의 내용이 참조하는 범위가 겹치는 내용이 반환된다고 하셨는데.. Ref error가 나옵니다. 혹 버젼 문제가 있는가요? 저는 2016입니다. >> 현상을 보다 보니 M8을 키보드로 치면 에러가 나오고 방향키로 선택하면 괜찮네요.
인덱스매치함수
인덱스매치함수 2025.12.02 17:27
안녕하세요 indirect 함수 상세히 설명해주셔서 감사합니다. 한 가지 궁금한 점이 있는데요. 현재 제품일지라는 파일을 매달 만들고 그 파일 안에 날짜별로 시트를 만들어서 제품별로 입고량이나 사용량과 같은 특정 값을 입력하고 있습니다. 제품일지 엑셀파일을 생성하고 시트명에 '12월 1일'과 같은 형식으로 입력하여 하나의 파일에 28~31개 시트가 생성됩니다. 이때 알려주신 사용예를 활용하여 매달 1일부터 말일까지의 사용량을 별도의 엑셀 파일에 불러올때 1일 사용량 =INDIRECT("'[제품일지.xlsx]12월 1일'!"&"Y12") ~ 31일 사용량 =INDIRECT("'[제품일지.xlsx]12월 31일'!"&"Y12") 으로 31칸에 각각 입력하고 있습니다. indirect 함수로 불러오려면 제품 수 × 불러오려고 하는 수치값 × 해당월 일수 만큼 직접 입력해야 하는데 제품 수가 수백개가 되는 경우에 일일이 입력하는 방법말고 한번에 indirect 함수를 활용하여 불러올 수 있는지, 아니면 가능하지만 indirect 함수가 아닌 다른 방법-매크로나 다른 함수활용 등-을 사용해야 하는지 궁금합니다.
오빠두엑셀
오빠두엑셀 작성자 2025.12.07 18:12
안녕하세요. 말씀하신 것 처럼 여러 시트에 분산되어 입력된 각 데이터를 집계해야할 때, INDIRECT 함수만으로 처리하는 것에는 한계가 있습니다. VSTACK 함수를 사용해 데이터를 취합 후 집계하거나, 파워쿼리를 사용하는 방법을 고려해보시길 바랍니다. 고맙습니다.