엑셀 ROWS, COLUMNS 함수 완벽 정복! (행 개수, 열 개수 세기부터 VLOOKUP 동적 활용 꿀팁까지)
안녕하세요! 엑셀로 데이터를 다루다 보면, "내가 지금 선택한 이 범위가 총 몇 행이지?", "이 표는 몇 개의 열로 이루어져 있지?" 궁금할 때가 많죠. 😅 일일이 눈으로 세거나 마우스로 드래그해서 개수를 확인하시나요?
오늘은 이럴 때 아주 유용한, 지정한 범위의 행과 열 개수를 '숫자'로 정확하게 알려주는 엑셀 ROWS 함수와 COLUMNS 함수에 대해 쉽고 확실하게 알려드릴게요!
📌 [핵심] ROWS와 COLUMNS 함수는 선택한 '범위(영역)'가 몇 개의 행과 열로 구성되어 있는지 그 '크기'를 알려주는 함수입니다.
📚 ROWS, COLUMNS 함수, 왜 사용해야 할까요?
"이 함수들, 그냥 COUNTA 같은 거랑 비슷한 거 아니야?" 라고 생각하실 수도 있어요. 하지만 이 함수들은 역할이 명확히 다릅니다!
- COUNTA 함수: 범위에서 데이터가 채워진 셀의 개수를 셉니다.
- ROWS / COLUMNS 함수: 데이터가 있든 없든 상관없이 우리가 지정한 '범위(Range)' 자체가 가진 구조적인 행/열의 개수를 알려줘요.
이게 왜 중요하냐면, 나중에 동적 범위를 만들거나 (데이터가 추가돼도 알아서 범위가 늘어나게 하는 것!) 복잡한 배열 수식을 작성할 때 이 함수들이 '기준'이 되어주기 때문이에요. 특히 오늘 배울 VLOOKUP 활용 예제는 실무에서 정말 유용하답니다!
🔍 함수 기본 구문 알아보기 (Syntax)
두 함수의 사용법은 거의 쌍둥이처럼 닮았답니다. 아주 간단해요!
1. ROWS 함수: 범위의 '행' 개수 구하기
=ROWS(array)
2. COLUMNS 함수: 범위의 '열' 개수 구하기
=COLUMNS(array)
인수 설명 (Argument)
array (필수): 행 또는 열의 개수를 구하려는 셀 범위 또는 배열입니다. A1:C5 처럼 범위를 직접 넣거나, OFFSET 함수처럼 범위를 반환하는 다른 함수를 넣을 수도 있어요.
⚠️ 잠깐! 주의할 점 (Note)
ROWS(A1) 처럼 단일 셀을 넣으면 어떻게 될까요? 결과는 1이 나옵니다. A1은 '1행 1열'짜리 범위로 인식되기 때문이죠.
마찬가지로 COLUMNS(A1)도 1이 나와요. 간단하죠?
🚀 예제로 완벽하게 이해하기 (Examples)
백문이 불여일견! 바로 예제를 보면서 감을 익혀볼게요.
아래와 같은 판매 현황 데이터가 A1:E9 셀에 있다고 가정해 볼게요.
"일자","제품명","지역","수량","단가"
"2025-10-01","스마트워치","서울",10,350000
"2025-10-01","무선이어폰","부산",35,180000
"2025-10-02","노트북","서울",5,1200000
"2025-10-02","스마트워치","인천",8,350000
"2025-10-03","태블릿","광주",15,750000
"2025-10-03","무선이어폰","서울",50,180000
"2025-10-04","노트북","부산",3,1200000
"2025-10-05","스마트워치","서울",12,350000
예제 1: [기본] 전체 데이터 범위의 행/열 개수 구하기
수식 (행 개수):
=ROWS(A1:E9)
결과: 9
설명: A1 셀부터 E9 셀까지의 범위는 총 9개의 행으로 이루어져 있다는 뜻입니다. (제목 행 포함)

수식 (열 개수):
=COLUMNS(A1:E9)
결과: 5
설명: 이 범위는 "일자", "제품명", "지역", "수량", "단가" 총 5개의 열로 구성되어 있죠.
예제 2: [서비스] 제목 행을 제외한 실제 '데이터 건수' 확인하기
위의 예제로 이미 알았을 뻔한 질문 다시합니다. 제목행을 제외한 행수를 구하고 싶다면? 범위에서 제목행 제외.^^
수식:
=ROWS(A2:E9)
결과: 8

설명: A1:E9 범위에서 제목 행(1행)을 뺀 A2:E9 범위를 인수로 넣으면, 순수한 데이터가 몇 행인지(총 8건) 바로 알 수 있어요.
(중요!) 만약 A5 셀이 비어있다면 COUNTA(A2:A9)는 7이 나오겠지만, ROWS(A2:A9)는 상관없이 8을 반환합니다. 이 차이가 핵심이에요!
예제 3: [서비스2] INDEX 함수와 조합하여 범위의 '마지막' 값 찾기
ROWS 함수는 범위의 행 개수를 반환하므로, INDEX 함수와 조합하면 해당 범위의 가장 마지막 항목을 가져올 수 있습니다.
수식:
=INDEX(B2:B9, ROWS(B2:B9))

결과: "스마트워치"
설명:
- ROWS(B2:B9)는 8을 반환합니다.
- 수식은 INDEX(B2:B9, 8)과 같아집니다.
- B2:B9 범위("스마트워치" ~ "스마트워치")에서 8번째 값을 찾아 "스마트워치"를 반환합니다.
(Tip. 데이터가 추가되어 범위가 B2:B10이 되면 ROWS(B2:B10)은 9가 되어 항상 마지막 값을 동적으로 찾아줍니다.)
예제 4: [실무 활용] VLOOKUP과 COLUMNS 조합! (★강력 추천★)
VLOOKUP 함수로 값을 찾을 때, 여러 열의 값을 한 번에 가져오고 싶을 때가 있죠. 보통 수식을 옆으로 복사한 뒤 3번째 인수(열 번호)를 2, 3, 4... 이렇게 수동으로 바꾸는데요. COLUMNS 를 쓰면 이 과정이 자동이 됩니다!
A11 셀에 찾고 싶은 "노트북" 을 입력했다고 가정해 볼게요.
B11 셀에 "지역", C11 셀에 "수량", D11 셀에 "단가" 를 차례대로 가져오고 싶어요.
찾을 값: A11 셀 = "노트북"
데이터 범위: B2:E9 (VLOOKUP은 찾는 값이 첫 번째 열에 있어야 하므로)
수식 (B11 셀에 입력):
=VLOOKUP($A$11, $B$2:$E$9, COLUMNS($B$2:C2), FALSE)

결과: "서울"
설명:
- VLOOKUP이 $A$11("노트북")을 $B$2:$E$9 범위에서 찾습니다.
- 가져올 열 번호(col_index_num)가 COLUMNS($B$2:C2)입니다.
- COLUMNS($B$2:C2)는 B열과 C열, 즉 2 를 반환합니다.
- 따라서, $B$2:$E$9 범위의 2번째 열인 "지역" 값("서울")을 가져옵니다.
이제 B11 셀의 수식을 D11까지 옆으로 쭉- 드래그(복사) 해보세요!
(핵심 팁!) COLUMNS($B$2:C2)에서 시작점인 $B$2만 절대 참조($)로 고정하는 것이 포인트예요! 복사할 때마다 끝 범위(C2 -> D2 -> E2)가 늘어나면서 열 번호가 2, 3, 4로 자동 증가합니다. 정말 편리하죠? 👍
노트) COLUMN 함수로도 VLOOKUP 함수로 비슷한 조합을 보여드렸습니다. COLUMN vs COLUMNS 어느것을 사용할까요? 그냥 편한거 쓰세요. ^^
🚨 자주 발생하는 오류 (Errors)
ROWS, COLUMNS 함수는 자체 오류가 거의 없지만, 주로 이름 오타나 COUNTA와의 혼동에서 문제가 생겨요.
#NAME? 오류
- 원인: 함수 이름을 잘못 입력한 경우입니다.
- 예: ROW(A1:A9) (S 빼먹음!), COLUMN(A1:E1) (S 빼먹음!)
- 해결: ROWS(), COLUMNS() 처럼 반드시 'S'를 붙여줘야 범위의 '개수'를 셉니다!
- 오류는 아니지만 가장 큰 '착각'!
- 위 예제 2에서 설명했듯이, 빈 셀이 있어도 ROWS와 COLUMNS는 범위 전체의 크기를 셉니다.
- COUNTA 는 빈 셀을 제외하고 '데이터가 있는' 셀만 셉니다.
🔗 함께 알아두면 좋은 함수들
- ROW() / COLUMN() : 'S'가 빠진 이 함수들은 범위의 '개수'가 아니라, 특정 셀의 '행 번호' 또는 '열 번호' 를 알려줘요. (예: ROW(A3)은 3, COLUMN(C1)은 3)
- COUNTA() / COUNT() : 범위에서 비어있지 않은 셀(COUNTA) 또는 숫자 셀(COUNT)의 '개수'를 셉니다.
- OFFSET() / INDEX() : ROWS, COLUMNS 함수와 조합되어 데이터가 늘어나도 자동으로 범위를 조절하는 '동적 범위'를 만드는 데 핵심적인 역할을 하는 함수들입니다.
🎯 오늘 배운 내용 요약과 마무리
- ROWS(범위): 지정한 범위의 총 '행' 개수를 반환합니다. (빈 셀 포함)
- COLUMNS(범위): 지정한 범위의 총 '열' 개수를 반환합니다. (빈 셀 포함)
- 핵심: COUNTA와 달리, 셀이 비어있는지와 상관없이 범위의 '크기(구조)'를 알려줍니다.
- 최고의 활용: VLOOKUP의 열 번호를 COLUMNS($시작열$:현재열)로 지정하면, 수식을 옆으로 복사할 때 열 번호가 자동으로 증가하여 매우 편리합니다.
오늘은 엑셀의 기본기를 다져주는 ROWS 와 COLUMNS 함수에 대해 알아봤어요. 어떠셨나요? 😊
처음엔 "이걸 어디다 쓰지?" 싶어도, 오늘 배운 VLOOKUP 예제처럼 다른 함수와 조합하면 정말 강력한 무기가 된답니다! 데이터의 '개수'가 아닌 '구조'를 파악해야 할 때 꼭 떠올려주세요.
혹시 함수를 사용하시다가 궁금한 점이나, "저는 이렇게도 활용해봤어요!" 하는 자신만의 꿀팁이 있다면 댓글로 자유롭게 남겨주세요. 서로의 노하우를 공유하는 멋진 공간이 되었으면 좋겠습니다.
오늘 내용이 도움이 되셨다면 공감(❤️)과 공유 부탁드려요! 여러분의 응원이 큰 힘이 됩니다.
📱 모바일에서 빠르게 보는 핵심 요약
[엑셀 ROWS / COLUMNS 함수]
- 목적: 선택한 범위(영역)의 행/열 개수 파악
- 특징: 셀이 비어있어도 상관없이 범위 '크기' 자체를 셈. (데이터 개수를 세는 COUNTA 와 다름!)
- 구문:
- =ROWS(범위) (예: ROWS(A1:C5) → 5 반환)
- =COLUMNS(범위) (예: COLUMNS(A1:C5) → 3 반환)
- 실무 팁 (강추): VLOOKUP 수식을 옆으로 복사할 때!
- 3번째 인수(열 번호) 자리에 COLUMNS($A$1:B1)처럼 시작 열만 고정($)해서 사용하세요.
- 수식을 옆으로 복사하면 COLUMNS($A$1:C1) (3), COLUMNS($A$1:D1) (4) ... 처럼 열 번호가 자동으로 증가해 정말 편리합니다.