데이터 자체의 구조적인 정보를 활용하고, 목록에서 원하는 값을 선택하는 함수들을 통해 조회 및 참조 능력을 한층 더 끌어올려야 합니다.
ROW, COLUMN, ROWS, COLUMNS, CHOOSE, 그리고 ADDRESS 함수들은 조회 함수와 결합하여 복잡한 데이터 조작, 동적인 범위 설정, 그리고 배열 수식 생성에 활용될 수 있는 핵심적인 도구입니다.
왜 행/열/영역 정보 함수를 알아야 할까요?
우리는 엑셀에서 데이터를 다룰 때 종종 셀의 '위치'나 '크기'에 대한 정보가 필요합니다.
예를 들어, "이 셀이 몇 번째 행에 있어?", "이 테이블의 총 열 개수는 몇 개야?", "목록에서 세 번째 옵션을 선택해줘"와 같은 질문이죠. 이러한 정보는 단순히 눈으로 확인하는 것을 넘어, 수식 내에서 동적으로 계산하고 활용될 때 진정한 위력을 발휘합니다.
ROW, COLUMN 같은 함수들은 이러한 위치 정보를 숫자로 반환하여 다른 수식의 인수로 활용될 수 있도록 하며, ROWS, COLUMNS는 범위의 크기를 알려줍니다. 또한 CHOOSE 함수는 여러 옵션 중 하나를 선택해야 할 때 유용하며, ADDRESS는 셀의 주소 텍스트를 생성하여 INDIRECT와 같은 함수와 연동될 수 있습니다. 이 함수들은 데이터의 구조를 이해하고, 이를 기반으로 더욱 복잡하고 자동화된 수식을 만드는 데 필수적인 역할을 합니다.
주요 함수들
다음 함수들을 실무 예제와 함께 자세히 살펴보겠습니다.
- ROW: 셀의 행 번호 반환
- COLUMN: 셀의 열 번호 반환
- ROWS: 범위의 총 행 개수 반환
- COLUMNS: 범위의 총 열 개수 반환
- CHOOSE: 값 목록에서 인덱스 번호에 해당하는 값 반환
- ADDRESS: 행 번호와 열 번호를 사용하여 셀 주소 텍스트 반환
실무 예제로 배우는 엑셀 함수 마스터하기
각 함수를 실제 비즈니스 시나리오에 적용하여 데이터의 구조적 정보를 활용하고, 값 목록에서 유연하게 선택하는 방법을 보여드리겠습니다.
1. ROW, COLUMN: 특정 셀의 행/열 번호 가져오기
ROW 함수는 지정된 셀 참조의 행 번호를 반환하고, COLUMN 함수는 지정된 셀 참조의 열 번호를 반환합니다. 이들은 동적인 번호 매기기나 배열 수식에서 특정 위치를 참조할 때 유용합니다.
- 기본 형식: =ROW([참조]), =COLUMN([참조])
- 참조 (선택 사항): 행/열 번호를 가져올 셀 또는 범위. 생략 시 함수가 입력된 셀의 행/열 번호를 반환합니다.
실무 예제: 데이터 목록에 자동으로 번호를 매기거나, 특정 셀의 위치 정보를 확인해야 합니다.
A열 | B열 |
순번 | 제품명 |
노트북 | |
태블릿 | |
스마트폰 |
예제 목표 1: A2 셀부터 목록에 순번을 자동으로 매기세요.
해결 방법 1 (순번 매기기): A2 셀에 다음 수식을 입력하고 아래로 채웁니다. =ROW()-ROW($A$1) 또는 =ROW()-1 (헤더가 1행에 있다면)
- ROW(): 현재 셀의 행 번호(A2이면 2)를 반환합니다.
- ROW($A$1): 기준 셀(헤더 바로 위)의 행 번호(1)를 반환하여 빼줍니다. 이렇게 하면 수식을 아래로 채워도 올바른 순번이 매겨집니다.
결과 1:
A열 | B열 |
순번 | 제품명 |
1 | 노트북 |
2 | 태블릿 |
3 | 스마트폰 |
예제 목표 2: '태블릿'이 있는 셀(B3)의 행 번호와 열 번호를 확인하세요.
해결 방법 2 (셀의 행/열 번호 확인): D2 셀에 =ROW(B3) 입력, E2 셀에 =COLUMN(B3) 입력.
결과 2: B3 셀의 행 번호는 3, 열 번호는 2
최상급 실무 활용: ROW()는 데이터 목록에 자동 순번을 부여하여 데이터 관리를 용이하게 하고, 필터링 시에도 순번이 유지되도록 합니다. ROW()와 COLUMN()은 INDEX 함수의 행_번호, 열_번호 인수에 동적으로 사용되어 배열 수식이나 복잡한 조회 수식을 생성할 때 핵심적인 역할을 합니다. 예를 들어, INDEX(범위, ROW()-ROW(범위의 첫 셀)+1)과 같이 사용하여 각 행에 해당하는 값을 동적으로 가져올 수 있습니다.
2. ROWS, COLUMNS: 범위의 총 행/열 개수 가져오기
ROWS 함수는 지정된 범위 내의 총 행 개수를 반환하고, COLUMNS 함수는 지정된 범위 내의 총 열 개수를 반환합니다. 이들은 동적인 범위 설정이나 테이블 크기 확인에 유용합니다.
- 기본 형식: =ROWS(배열), =COLUMNS(배열)
- 배열: 행/열 개수를 셀 범위.
실무 예제: 데이터 목록의 총 제품 개수를 세거나, 테이블의 열 개수를 확인하여 동적인 수식을 만들 때 사용합니다.
제품명 | 단가 | 재고량 |
노트북 | 1200000 | 100 |
태블릿 | 1500000 | 80 |
스마트폰 | 950000 | 120 |
예제 목표 1: A1:C4 범위의 총 행 개수를 확인하세요.
해결 방법 1: E2 셀에 =ROWS(A1:C4)
결과 1: 4
예제 목표 2: A1:C4 범위의 총 열 개수를 확인하세요.
해결 방법 2: F2 셀에 =COLUMNS(A1:C4)
결과 2: 3
최상급 실무 활용: ROWS와 COLUMNS는 OFFSET 함수와 결합하여 데이터가 추가/삭제될 때마다 자동으로 확장/축소되는 동적인 데이터 범위(OFFSET(A1, 0, 0, COUNTA(A:A), COUNTA(1:1)))를 생성하는 데 필수적입니다.
이는 차트의 데이터 원본, 피벗 테이블 범위, 데이터 유효성 검사 목록 등을 자동화하여 보고서의 유지보수성을 획기적으로 높여줍니다.
3. CHOOSE: 목록에서 값 선택하기
CHOOSE 함수는 주어진 값 목록에서 인덱스 번호(위치)에 해당하는 값을 반환합니다. 여러 가지 옵션 중 하나를 선택해야 할 때 유용합니다.
- 기본 형식: =CHOOSE(인덱스_번호, 값1, [값2], ...)
- 인덱스_번호: 반환할 값의 위치를 나타내는 숫자 (1부터 시작).
- 값1, 값2, ...: 선택할 값 목록. 셀 참조, 숫자, 텍스트, 다른 수식 등이 올 수 있습니다.
실무 예제: 직원의 등급 번호에 따라 해당 등급의 명칭을 표시해야 합니다.
직원명 | 등급 번호 |
김팀장 | 1 |
이사원 | 3 |
박대리 | 2 |
예제 목표: C열에 등급 번호에 따라 등급 명칭("수석", "선임", "주니어", "인턴")을 표시하세요.
해결 방법: C2 셀에 다음 수식을 입력하고 아래로 채웁니다. =CHOOSE(B2, "수석", "선임", "주니어", "인턴")
결과:
직원명 | 등급 번호 | 명칭 |
김팀장 | 1 | 수석 |
이사원 | 3 | 주니어 |
박대리 | 2 | 선임 |
최상급 실무 활용: CHOOSE는 숫자 코드를 의미 있는 텍스트로 변환, 드롭다운 목록과 연동하여 동적인 값 선택, 또는 특정 조건에 따라 다른 계산식을 적용할 때 유용합니다. 특히 WEEKDAY 함수와 결합하여 요일 번호를 요일 이름으로 변환하는 등 MATCH 없이 직접적인 선택이 필요할 때 효율적입니다.
4. ADDRESS: 행/열 번호로 셀 주소 텍스트 반환
ADDRESS 함수는 지정된 행 번호와 열 번호를 사용하여 셀 주소의 텍스트 문자열을 반환합니다.
이 주소 문자열은 주로 INDIRECT 함수와 결합하여 동적인 셀 참조를 만들 때 사용됩니다.
- 기본 형식: =ADDRESS(행_번호, 열_번호, [참조_유형], [A1_참조_스타일], [시트_텍스트])
- 행_번호: 셀의 행 번호.
- 열_번호: 셀의 열 번호.
- 참조_유형 (선택 사항): 참조 유형 (1: 절대 참조 $A$1, 2: 절대 행/상대 열 A$1, 3: 상대 행/절대 열 $A1, 4: 상대 참조 A1).
- A1_참조_스타일 (선택 사항): 참조 스타일 (TRUE/생략: A1 스타일, FALSE: R1C1 스타일).
- 시트_텍스트 (선택 사항): 시트 이름 텍스트.
실무 예제: INDIRECT 함수와 함께 사용하여 특정 행과 열 번호에 해당하는 셀의 값을 가져오세요.
데이터:
A | B | C | |
1 | 1월 | 2월 | |
2 | 김 | 100 | 120 |
3 | 이 | 150 | 180 |
데이터 조회:
- 조회 행 번호: E2 셀에 2
- 조회 열 번호: F2 셀에 2
예제 목표: G2 셀에 E2와 F2에 입력된 행과 열 번호에 해당하는 셀의 값을 가져오세요.
해결 방법: G2 셀에 다음 수식을 입력합니다. =INDIRECT(ADDRESS(E2, F2, 4))
- ADDRESS(E2, F2, 4): E2의 2행, F2의 2열(B열)을 기반으로 "B2"라는 상대 참조 텍스트를 만듭니다. (유형 4는 상대 참조)
- INDIRECT(...): "B2" 텍스트를 실제 셀 참조로 변환하여 그 값을 가져옵니다.
결과: 100
최상급 실무 활용: ADDRESS 함수는 INDIRECT와 결합하여 수식의 참조 대상을 동적으로 변경해야 할 때 사용됩니다.
이는 특히 복잡한 데이터 모델, 사용자 정의 보고서, 또는 VBA 매크로와 연동하여 셀 주소를 프로그래밍 방식으로 생성해야 할 때 강력한 유연성을 제공합니다. 동적 범위 참조, 동적 함수 적용 등 고급 자동화 시나리오에서 핵심적인 역할을 합니다.
ROW, COLUMN, ROWS, COLUMNS와 같은 데이터의 구조적 정보를 가져오는 함수들, 그리고 CHOOSE를 통해 목록에서 값을 선택하고, ADDRESS를 통해 셀 주소 텍스트를 생성하는 함수들을 심층적으로 살펴보았습니다. 이 함수들은 단독으로도 유용하지만, 조회 함수들과 결합하여 더욱 복잡한 데이터 조작, 동적인 범위 설정, 그리고 배열 수식 생성에 활용될 때 진정한 가치를 발휘합니다.