Ch.1 핵심 함수

배열 수식 & INDIRECT

배열 수식(CSE)의 입력 방법과 동작 원리를 설명할 수 있다배열 상수의 구분자(쉼표=열, 세미콜론=행)를 정확히 구분할 수 있다INDIRECT 함수로 문자열을 셀 참조로 변환할 수 있다

수식 하나로 100개 셀을 동시에 계산할 수 있다면?

조건을 만족하는 항목의 합계를 한 수식으로 구하고, 시트 이름이 바뀌어도 자동 참조되는 수식을 만드는 상황

Enter 대신 Ctrl+Shift+Enter를 누르지 않으면 전혀 다른 결과가 나온다?

배열 수식과 INDIRECT는 고급 함수 문제의 단골 소재입니다


article

핵심 내용

배열 수식은 여러 값을 한꺼번에 계산하는 수식입니다. 일반 수식은 Enter로 확정하지만, 배열 수식은 Ctrl+Shift+Enter(CSE)로 입력합니다. 수식 입력줄에 {중괄호}가 자동으로 붙으면 성공입니다.

일반 수식:  =SUM(A1:A10)          → Enter
배열 수식:  {=SUM(IF(B1:B10="영업",A1:A10))}  → Ctrl+Shift+Enter

※ {중괄호}는 직접 타이핑하면 안 됩니다!
   반드시 Ctrl+Shift+Enter로 자동 생성

핵심: IF 함수가 범위(B1:B5)를 받으면 각 셀마다 TRUE/FALSE 배열을 반환합니다. SUM이 이 배열을 합산하므로 조건에 맞는 값만 더할 수 있습니다.

배열 상수는 {중괄호} 안에 값을 나열한 것입니다. 구분자 규칙이 매우 중요합니다.

── 다중 조건 배열 수식 ──

조건 1: 부서="영업", 조건 2: 등급="A"

{=SUM((B1:B10="영업")*(C1:C10="A")*A1:A10)}

→ (TRUE/FALSE) * (TRUE/FALSE) * 매출
→ 둘 다 TRUE인 행만 곱이 1이 되어 합산

★ 이것은 SUMIFS로 대체 가능하지만,
   시험에서 배열 수식 형태로 출제됩니다

시험 팁: 배열 수식에서 조건 여러 개는 곱셈(*)으로 AND 조건, 덧셈(+)으로 OR 조건을 구현합니다. TRUE=1, FALSE=0이라 산술 연산이 가능합니다.

INDIRECT는 텍스트 문자열셀 참조로 변환합니다. "A1"이라는 문자열을 실제 A1 셀의 참조로 바꿔줍니다.

=INDIRECT(참조_텍스트, [참조_형식])

기본 예시:
  =INDIRECT("A1")         → A1 셀의 값
  =INDIRECT("A"&ROW())    → 같은 행의 A열 값
  =INDIRECT("Sheet2!B5")  → Sheet2의 B5 값

참조 형식:
  TRUE(기본) = A1 스타일
  FALSE     = R1C1 스타일

기출 핵심: INDIRECT로 다른 시트 참조 문제가 자주 출제됩니다. 시트명에 공백이 있으면 작은따옴표로 감싸야 합니다: INDIRECT("'시트 1'!A1")

이름 정의는 셀 범위에 이름을 붙이는 기능입니다. 수식 탭 → 이름 관리자에서 설정하며, INDIRECT와 조합하면 강력한 동적 참조가 가능합니다.

── 이름 정의 기본 ──
이름: "매출범위"  → 참조: =Sheet1!$A$1:$A$100

사용: =SUM(매출범위)   → =SUM(Sheet1!$A$1:$A$100)과 동일

── INDIRECT + 이름 정의 ──
D1 셀: "매출범위"  (이름을 텍스트로 저장)

=SUM(INDIRECT(D1))   → D1의 텍스트를 이름으로 인식
                      → 매출범위가 참조하는 셀 합산

── 동적 범위 (OFFSET + COUNTA) ──
이름: "동적매출"
참조: =OFFSET(Sheet1!$A$1,0,0,COUNTA(Sheet1!$A:$A),1)

→ 데이터가 추가되면 범위가 자동 확장

동적 범위 공식: OFFSET(기준셀, 0, 0, COUNTA(열), 1)로 데이터 추가 시 자동 확장되는 범위를 만들 수 있습니다. 이름 정의에 이 수식을 넣으면 유지보수가 편합니다.

배열 수식을 입력할 때 사용하는 키 조합은?

배열 상수 {1,2;3,4}의 구조는?

문자열 "B5"를 실제 B5 셀 참조로 변환하는 함수: =_____("B5")

배열 수식의 {중괄호}는 키보드로 직접 타이핑해도 된다.

=INDIRECT("A"&ROW())를 B3 셀에 입력하면 결과는?

INDIRECT 함수에서 참조하는 시트나 셀이 존재하지 않으면 0을 반환한다.

compare_arrows

비교 정리

항목구분자의미예시결과
쉼표 (,)열 구분{1,2,3}1행 3열 가로 배열
세미콜론 (;)행 구분{1;2;3}3행 1열 세로 배열
혼합2차원{1,2;3,4}2행 2열 배열
check_circle

핵심 정리

  • 1배열 수식: Ctrl+Shift+Enter(CSE)로 입력, {중괄호} 직접 타이핑 금지
  • 2배열 상수 구분자: 쉼표(,)=열 구분, 세미콜론(;)=행 구분
  • 3다중 조건: 곱셈(*)=AND, 덧셈(+)=OR — TRUE=1, FALSE=0 활용
  • 4INDIRECT(텍스트): 문자열→셀참조 변환, 다른 시트 참조 시 자주 출제
  • 5이름 정의 + INDIRECT: 동적 참조, OFFSET+COUNTA로 자동 확장 범위

퀴즈와 인터랙션으로 더 깊이 학습하세요

play_circle인터랙티브 레슨 시작