티스토리 뷰

엑셀 기본 함수 중에 해당 셀의 행과 열을 반환해주는 ROW()와 COLUMN() 함수가 있습니다. 아주 간단한 함수들인데 INDEX() 함수와 함께 사용하면 1차원으로 나열된 데이터를 2차원으로 바꾸는 등 다양한 용도로 활용할 수 있습니다.

특히, 네이버 부동산 매물 등 웹페이지의 데이터의 경우 값이 1차원 배열로 복사되는 경우가 있습니다. 이럴 때 INDEX(), ROW(), COLUMN() 함수를 이용하면 액셀 매크로나 VBA 없이도 데이터를 손쉽게 구분할 수 있으니 알아두면 좋을 것 같습니다.

 

1. 활용 예시

 

▼ 네이버 부동산 매물(1차원) 데이터를 2차원 표로 정리하는 것은 앞서 포스팅한 바 있습니다.

 

 

  • [A열]에 1차원으로 들어온 데이터를 2차원 표로 나타내도록 [D1] 셀에 함수를 입력했습니다.

 

  • [D1]의 함수를 우측과 아래측으로 [채우기] 한 것 만으로 1차원 데이터가 2차원 표로 깔끔하게 정리됩니다.

 

 

2. ROW 함수와 COLUMN 함수의 기본 개념

[ROW()] 함수와 [COLUMN()] 함수는 각각 괄호 안에 위치한 셀의 [행]과 [열]을 반환해주는 함수입니다.

 

▼ 백문이 불여일견, [B3]에는 =ROW(A1)을, [F3]에는 =COLUMN(A1) 을 입력하고 자동 채우기를 해보겠습니다.

  • [A1]은 행과 열이 모두 1이므로, 행을 표시한 [B3]과 열을 표시한 [F3] 모두 숫자 1이 출력됩니다.
  • 그러나 자동채우기를 하면 결과는 사뭇 달라집니다.

 

▼ ROW는 아래쪽으로, COLUMN은 우측으로 움직여야 숫자가 변합니다.

  • ROW는 행을 읽는 함수라 같은 행 내에서 움직이는 좌우 방향에 대해서는 숫자가 바뀌지 않습니다.
  • 마찬가지로 COLUMN은 열을 읽는 함수라 위아래로 아무리 움직여봐야 열이 바뀌지 않아 숫자가 그대로입니다.

 

 

3. 간단한 구구단 예제

이러한 ROW() 함수와 COLUMN() 함수의 특징을 가장 잘 나타낼 수 있는게 바로 구구단 예제입니다.

▼ 아래와 같이 ROW(A1)과 COLUMN(A1)을 곱한 뒤 사각형 모양으로 자동 채우기를 하면 어떻게 될까요?

  • 네, 이렇듯 간단하게 구구단 곱셈 표가 만들어집니다.
  • [5 x 6 = 30]이 계산된 [H7] 행을 예를 들자면 자동채우기를 하는 동안 ROW()와 COLUMN() 안의 셀이 F5로 바뀌었습니다. 즉, 5행 * F열(6열) 이 되어 30이 계산됩니다.

 

 

4. 엑셀에서 1차원 값을 2차원으로 배열하기

 

그러나 구구단 정도에서 ROW()와 COLUMN() 함수 활용을 끝내면 뭔가 아쉽습니다. 이 두 함수의 진정한 효용은 일정한 주기로 반복되는 1차원 배열을 2차원으로 배열로 변경할 때 드러납니다.

 

▼ 아래와 같이 일정한 주기[4개]로 반복되는 데이터들가 [1]부터 [16]번째까지 있다고 가정합시다.

 

▼ 주기가 [4]이므로 4로 나눈 [몫]과 [나머지]로 [1]부터 [16]까지 숫자를 표현하면 아래와 같을 것입니다.

  • 여기서 빨간색 부분도 일정 주기로 [1,2,3,4]가 파란색 부분도 일정 주기로 [1,2,3,4]가 반복되고 있는 것을 볼 수 있습니다.

 

▼ 이를 테스트해보기 위해 [G2] 열에 [ = ( ROW(A1)-1 ) * 4 + COLUMN(A1) ] 을 입력해보겠습니다. [A1]의 행과 열은 모두 1이므로 [ (1-1) * 1 + 1 ] 이 계산되어 숫자 [1]이 출력될 것을 예상할 수 있습니다.

 

▼ 이를 우측으로 4칸, 아래로 4칸 자동채우기를 하면 어떻게 될까요?

  • 1차원으로 배열되어 있던 [1] ~ [16]까지 숫자가 4 x 4 크기의 2차원 표 형태로 정리되는 모습을 보실 수 있습니다.

 

5. INDEX() 함수로 실제 1차원 데이터를 2차원 데이터로 바꾸기

 

이제 범위에서 해당하는 행과 열에 따라 값을 반환해주는 INDEX() 함수를 사용하여 값을 불러오기만 하면 됩니다.

 

▼ [G8] 셀에 [ = INDEX( 범위, ROW(A1)-1 ) * 4 + COLUMN(A1) ]을 해주기만 하면 됩니다. 뒤에 있는 인자는 위에서 [1] ~ [16] 을 표현하기 위해 사용한 함수를 그대로 붙여넣은 것에 지나지 않습니다.

 

▼ 이를 자동채우기 해주면 항목에 맞게 1차원 데이터가 2차원 데이터 표로 정리된 것을 확인하실 수 있습니다.

댓글