-
엑셀함수 INDIRECT 사용방법 / 누적 합계 계산하는 방법[프로그램]/IT 이야기 2022. 12. 20. 19:30728x90
엑셀을 사용하다보면
특정 셀 위치의 값을 가져올 때가 있는데요
가장 편하게 쓰는 방법은
"=셀주소"
입니다.
예를 들어 "=A1"이라고 입력하면
A열 1행의 값을 가져오죠
그런데 수식으로 계산된 셀의 주소(문자열) 값으로
가져오려면 어떻게 해야할까요?
바로 INDIRECT 라는 함수를 이용하면 됩니다!
INDIRECT는 두 개의 입력값을
필요로 하는데요
첫 번째는 가져올 셀의 주소로
"A1" 혹은 "R1C1"과 같은 스타일로
입력을 하면 됩니다.
두 번째 값은
앞에 입력한 셀 주소가
"A1"과 같은 스타일이면
TRUE나 생략을 하시면 되고
"R1C1"과 같은 스타일이면
FALSE를 입력해주면 됩니다!!
바로 예제를 볼게요!!
B2 셀에
=INDIRECT("F1")
을 입력했습니다.
그러면 F열 1행에 있는 "HELLO"라는 단어를
불러오는 것을 볼 수 있습니다.
사실 "=F1"을 입력해도
같은 결과가 나오죠
ㅎㅎㅎ
이번에는 B2셀에
=INDIRECT(G1)
이라고 입력해봤습니다.
아까와 차이점은
셀이름에 쌍따옴표를 붙인것과 붙이지 않은 것의 차이입니다.
이렇게 입력하니
G1셀에 있는 "E1"이라는 문자열이 표시되는 것이 아니라
E1셀에 있는 값인 "HI"를 표시하고 있습니다.
INDIRECT 함수 안에 셀 주소를 쓸 때
쌍따옴표를 입력하면
해당 셀의 값을 가져오고
쌍따옴표를 하지 않으면
해당 셀에 "참조할 셀 주소"를 가지고 있는 것으로
인식을 했습니다.
그렇다면 이 INDIRECT 함수를 이용해
상위 행의 값을 누적해서
더하는 작업을 해볼게요!!
이렇게 엑셀에 값을 입력했습니다.
E2셀에는 "=C2 - D2" 값이 들어있습니다.
그리고 "누적(F열)"셀에는
=IF( B2 = 1, E2, INDIRECT("F" & B2) + E2)
값을 입력하고
그 밑의 행으로는 자동채우기를 수행했습니다.
F2셀에 있는 수식을 분석해볼게요!!!
IF 조건문 사용법은
=IF( 조건, 참일때 수행, 거짓일 때 수행)
인데요
조건을 보면 B2행이 1인지 비교하고 있어요
B2행은 1이기 때문에
(즉, 첫번째 행이기 때문에)
합계값(E2)을 출력하게 되어있어요
그래서 80이란 값이 나왔습니다.
그 다음줄인
F3셀에 있는 수식을 분석해볼게요!
IF 조건을 보면
행이 다음칸으로 넘어가면서
B3셀의 값이 1인지 비교하고 있어요
B3셀의 값은 2이기 때문에
이번에는 두 번째에 있는
INDIRECT('F' & B3) + E3을
수행하겠네요!
INDIRECT 함수 안에는 "F" & B3이 있는데
이것은 문자열 병합하는 방법으로
두 개의 문자열을 하나로 합쳐준답니다.
"F" & "2(B3셀의 값)"을 합쳐서
"F2"라는 문자열로 인식이 된답니다.
그러면 INDIRECT("F2")는 "F2"셀의 값을
가져오기 때문에 80이란 값을 가져오겠네요
그리고 뒤에 E3 값(170)을 더하도록 되어있으니
80 + 170의 값인
250이 F3에 출력되고 있답니다.
이렇게 그 밑으로도
"일자(B열)"값이 1이 아닌 이상
(즉 처음 행이 아닌 이상)
상위행의 값을 누적하여
계산하게 된답니다.
예제 엑셀파일도 같이 올려볼게요!!!
INDIRECT 함수를 이용해서
문자열 셀 주소의 값을 가져올 수 있기 때문에
다양한 수식을 계산할 때
아주 유용하게 사용할 수 있답니다!!
그럼 엑셀 INDIRECT 함수 사용방법에 대한
포스팅을 마치도록 하겠습니다!!!
728x90