- 최초 작성일: 2002-09-04
- 최종 수정일: 2026-09-29
- 조회수: 30 회
- 작성자: 권현욱 (엑셀러)
- 강의 제목: INDIRECT와 ROW로 일정 행 간격의 데이터만 골라내기
들어가기 전에
오래 전 엑셀 파일로 진행하던 강의를 웹 글로 복원한 것이라, "버튼을 눌러보세요"처럼 엑셀에서 직접 조작하라는 표현이 남아 있을 수 있습니다. 결과는 본문의 그림이나 표로 확인하실 수 있으며, 현재와 맞지 않는 내용은 보완하되 전반적인 스타일은 당시의 갬성(?)을 유지했습니다.
Every bean has its black.
모든 콩은 검은 부분이 있습니다. 세상에 결점 없는 사람이 있을까요?
INDIRECT와 ROW로 일정 행 간격의 데이터만 골라내기
핵심 요약
500개 행에 흩어진 데이터 중 20행마다 하나씩처럼 일정한 간격으로 떨어진 값만 골라 다른 시트로 옮겨야 할 때, INDIRECT와 ROW 함수를 조합하면 주소를 일일이 입력할 필요 없이 자동으로 처리할 수 있습니다.
- ROW() 함수로 현재 행 번호를 구합니다.
- (ROW()-1)*간격+시작오프셋 공식으로 원본에서 가져올 실제 행 번호를 계산합니다.
- INDIRECT로 계산된 행 번호를 실제 셀 주소 문자열로 변환해 참조합니다.
질문: 20행씩 떨어진 데이터를 20개의 시트로 자동 분리하고 싶어요
지금 작업하다가 일일이 수작업으로 하기엔 너무 오래 걸릴 것 같아 질문드립니다. 500개의 행 중에 필요한 데이터는 20행씩 떨어져 있거든요. 그 데이터를 20개의 시트로 링크시키려고 했는데 계속 주소만을 입력하는 중입니다. 주소 떨어진 건 일정한데 단지 숫자 간격만 다르다는 것뿐인데, 혹시나 해서 질문을 드리지만 다른 방법이 없나요? 일일이 마우스로 하는 것은 더 복잡할 것 같고요.
계속 주소를 입력하는 것이 첫 번째 시트에서는 =DATA!A2, =DATA!A22, =DATA!A42, =DATA!A62… 식이고, 두 번째 시트에서는 =DATA!A3, =DATA!A23, =DATA!A43, =DATA!A63… 식으로 이어집니다. 혹시 해결책이 있다면 어떤 방법인지 도움을 주시면 감사하겠습니다.
몇 가지 함수를 조합하면 가능한데, 이것을 몰라서 일일이 수작업으로 한다는 것은 다시금 생각해 보아야겠지요.
Source 시트의 A열과 같이 데이터가 한 500개쯤 있다고 할 때, Sheet1에는 A2, A22, A42, A62… 등과 같이 2행을 기준으로 매 20행의 데이터를, Sheet2에는 A3, A23, A43, A63… 등과 같이 3행을 기준으로 매 20행의 데이터를 이런 식으로 반복해서 골라내려면 어떻게 해야 할까요?
이런 경우에는 INDIRECT 함수와 ROW 함수를 적당히 조합해서 사용하면 됩니다.
=INDIRECT("Source!a"&((ROW()-1)*20+2))
=INDIRECT("Source!a"&((ROW()-1)*20+3))
불규칙해 보이는 현상 속에서 규칙을 찾아내는 일이 중요합니다. 어떤 일정한 패턴만 발견해 내면 나머지는 쉬워집니다.
정리 — INDIRECT와 ROW로 일정 간격 데이터 추출하기
| 구성요소 | 역할 |
|---|---|
ROW() | 수식이 입력된 현재 셀의 행 번호를 반환 |
(ROW()-1)*20 | 현재 행이 몇 번째 반복인지에 20(간격)을 곱해 원본의 오프셋을 계산 |
| +2, +3 … (시작 오프셋) | 시트별로 다르게 지정해 원본의 연속된 20개 행을 겹치지 않게 배분 |
INDIRECT("Source!a"&행번호) | 계산된 행 번호를 실제 셀 주소 문자열로 만들어 그 값을 참조 |
자주 묻는 질문 (FAQ)
Q1. 간격을 20이 아닌 다른 숫자로 바꾸려면 어떻게 하나요?
수식의 곱하는 숫자 20을 원하는 간격으로 바꾸면 됩니다. 예를 들어 10행 간격이면 (ROW()-1)*10+시작오프셋 형태로 바꾸면 됩니다.
Q2. INDIRECT 대신 다른 함수로도 같은 결과를 얻을 수 있나요?
네, OFFSET 함수로도 동일하게 구현할 수 있습니다. 예: =OFFSET(Source!$A$1,(ROW()-1)*20+1,0). INDIRECT는 시트 이름을 텍스트로 다룰 때, OFFSET은 기준 셀에서 이동량을 계산할 때 각각 편리합니다.
Q3. 왜 시트마다 시작 행 번호가 하나씩 다른가요?
Sheet1은 2행, Sheet2는 3행, Sheet3은 4행처럼 시작 오프셋을 하나씩 다르게 주면, 원본 데이터의 연속된 20개 행을 시트별로 겹치지 않게 나눠 담을 수 있기 때문입니다.
마치며
일정한 간격으로 떨어진 데이터를 골라내는 작업은 언뜻 복잡해 보이지만, ROW로 순번을 만들고 그 순번에 간격을 곱해 실제 위치를 계산하는 패턴 하나만 이해하면 어떤 간격에도 똑같이 응용할 수 있습니다.