Tech

엑셀 배열 - 대괄호 { }

onesixx 2009. 8. 6. 12:28
반응형

* 배열

배열: 같은 성격의 정보를 한 곳에 모아 놓은 것
워크시트는 행과 열의 배열의 집합이라고 볼 수 있을 정도로 
배열은 엑셀의 모든 것을 이루고 있는 요소, 계산의 기본이 되는 개념

엑셀에서는 배열식을 {}를 사용해서 표현, <일반적인 수식을 입력한 후 Ctrl+Shift+Enter 키를 쳐서 배열식을 만든다>

1> 배열을 이용하지 않은 수식의 계산

아래 데이터 구조에서 서울지역의 TV 판매량의 합계를 구하고 싶다면 어떻게 할까요? 
다른 함수나 데이터베이스를 이용할수 있지만, 데이터의 변경 없이 배열로 구할수도 있다. 


① D2 셀  =IF(A2="서울",B2,"")   
   D8 셀까지 자동 채우기 
  의미: 만약 A2 셀에 서울이라는 문자가 있으면 B2 셀에 있는 TV 판매 대수를 반환하고, 그렇지 않으면 빈 셀로 남겨두라

② D10 셀에 =SUM(D2:D8)을 입력합니다. 그러면 서울 지역의 TV 판매대수의 합계를 구할 수 있을 것입니다. 지금까지 우리가 배운 것으로는 이 방법이 유일한 해결책입니다.

배열은 같은 성격의 정보를 모아둔 것이라고 했으니까 배열을 잘 이용하면 간단하게 해결할 수 있습니다.
앞에서 엑셀의 계산은 사실 모두 배열로 처리한다고 했습니다. 그럼 어떻게 되는 것인지 원리를 확인해 보도록 하겠습니다.

③ 합계를 구한 D10 셀을 선택하면 수식 입력줄에 =SUM(D2:D8) 이라고 수식이 표시됩니다.
   이중에서 D2:D8만 범위를 선택한 후 F9키<수식의 결과값을 보기>를 눌러 수식의 계산된 결과값을 본다.
   {15;"";"";"";15;"";20} 식이 나타났습니다.
   {}는 엑셀에서 배열식으로 사용된다고 했었죠? 이렇게 내부적으로는 배열식을 참고해서 계산을 하는 것입니다.
   그렇다면 복잡하게 몇 단계의 과정을 거치지 않고 배열식을 바로 입력해서 원하는 값을 한번에 찾아보도록 하겠습니다.


2> 배열식을 통한 효율적인 계산

① 서울 지역 TV 판매의 합계를 구할 임의의 셀을 선택한 다음과 같은 식을 입력합니다.
=SUM(IF(A2:A8="서울",B2:B8,""))     그 후 Ctrl+Shift+Enter 키를 같이 눌러서 배열식이 되도록 입력합니다.

② 그러면 정확한 값이 한번에 나왔을 것입니다.   배열을 이용하면 여러 과정이 필요한 수식을 간단하게 구할 수 있습니다.

이제 배열식에 관한 이해가 조금 되었을 것입니다. 이 배열식은 뒤에서 데이터 베이스를 다룰 때 "표 만들기" 기능에도 밀접하게 연관되므로 확실하게 이해를 해두셔야 합니다.

3> F9키로 배열식의 참조영역 살펴보기
이번에는 배열식이 실제로 어떤 배열을 참고하고 있는지를 확인해 보도록 하겠습니다.
① 배열식이 입력된 셀을 선택합니다. 수식 입력줄에서 A2:A8 셀을 선택한 후 F9키를 누릅니다.

② 같은 방법으로 B2:B8를  선택하고 F9키를 누릅니다.

배열을 잘 활용하면 작업을 무척 간단하게 할 수 있습니다. 또한 워크시트 함수 중에는 배열인수를 사용하는 것도 있으므로, 이래저래 배열은 엑셀을 이해하는데 반드시 알아두어야 하는 개념입니다.

* 배열 상수 (배열은 행렬이다)

배열식에서 단일값을 갖는 기본 수식은 하나 이상의 인수나 값을 사용하여 하나의 결과를 반환하게 됩니다. 앞에서 다루었던 내용이지요. 배열식을 이용하면 값이 있는 셀을 참조하거나 값 자체를 입력할 수도 있는데, 이 때 입력하는 값의 배열을 배열 상수라 하며 워크시트 셀마다 값을 각각 입력하지 않을 때 편리하게 사용할 수 있습니다. 배열 상수를 만들 때는 다음과 같은 원칙이 있습니다.
- 다른 열에 있는 값은 쉼표(,)로 구분
- 다른 행에 있는 값은 세미콜론(;)으로 구분

이것도 아리송하죠? 다음 예를 통해서 이해해 보도록 하겠습니다.

1> 배열상수 입력하기

① 임의의 셀에 ={1;2;3;4}라고 입력하고 키를 쳐보세요. 에러가 생겼다는 경고 메시지가 나타나고 셀에는 1만 입력이 되었을 겁니다. 그런데 왜 경고 메시지가 나타났을까요? ={1;2;3;4}라는 식의 의미는 4개의 행을 선언하고, 여기에 1, 2, 3, 4라고 하는 배열 상수를 입력하겠다는 의미인데, 현재 선택된 셀은 하나밖에 없기 때문입니다.(실제로는 4개가 필요한데) 

② 이번에는 다시 A1셀부터 A4셀까지 4개의 행을 선택한 후 같은 식을 입력해 보겠습니다. 식을 입력한 후 Ctrl+Shift+Enter 키를 동시에 눌러보세요. 이건 배열식을 입력할 때 사용했던 것이지요?

③ 다음과 같이 배열 수식이 상수로 입력되었습니다. 

지금 한 작업이 중·고등학교 수학시간에 배웠던 행렬이라는 것입니다. 1×4 행렬이 입력된 것이죠. 어떤 셀을 선택하든지 수식 입력줄에는 {={1;2;3;4}}라고 같은 수식이 나올 것입니다. 이것은 배열이 집단체(같은 성격을 가진)를 이루고 있음을 의미하는 것입니다. 이렇게 입력한 후에 배열식의 특정 셀을 삭제하려고 하면 삭제할 수 없다는 에러가 생깁니다. 집단체에서 하나만 제외할 수 없다는 경고 메시지가 나타나는 것이죠.

배열을 삭제하려면 배열 전체의 범위를 선택한 후 삭제해야 합니다.
이번에는 2×4 행열을 만들어 볼까요? 배열 상수로 입력을 할 때는 행, 열의 구분을 ;와 ,로 해주는 것을 항상 염두에 두어야 합니다.
① A1:D2까지의 범위를 선택한 후 ={1,2,3,4;5,6,7,8}을 입력하고 Ctrl+Shift+Enter키를 눌러 보세요.
다음과 같이 2×4 행열이 만들어 졌을 것입니다. 다른 행으로 구분할 때 ;을 쓴 것을 유심히 보세요.


② A1:A4의 범위를 선택합니다. 그 후 "={1;2;3;4}*3"을 입력합니다.

③ 수식 입력이 끝났으면 Ctrl+Shift+Enter 를 누릅니다. 각 배열 상수에 3이 곱해진 값으로 행렬이 만들어졌습니다.

④ 이번에는 A1:A4의 범위를 선택한 후 "={1;2;3;4}*{2;3;4;5}"를 입력합니다.

⑤ Ctrl+Shift+Enter 를 눌러서 배열식을 만들면 각각의 행과 열에 대입되는 값이 서로 곱해져서 배열식을 이루게 됩니다.

2> 배열 상수를 이용해 붕어빵 가격 계산하기

엑셀은 참 똑똑한 프로그램이라는 생각을 하시게 될 겁니다. 아직 확실하게 이해가 안 되는 분들은 계속 실습을 해보면서 왜 이런 기능이 필요한지 감을 잡으시기 바랍니다. 뒤에서도 계속 다뤄질테니까 연결해서 생각하시면 한결 이해가 쉬울 것입니다. 다음은 배열 상수를 이해하기 위한 마지막(?) 예입니다. 붕어빵을 하나만 사면 100원씩이고, 2개를 살 때는 하나에 70원씩, 3개를 살 때에는 하나에 50원씩이라고 가정해 보면, 다음과 같은 수식을 이용할 수 있을 것입니다.
① 다음과 같은 데이터를 작성합니다.

② E2:E4셀의 범위를 선택합니다. 그 후 "={1;2;3}*{100;70;50}"을 입력합니다. 식이 입력되었으면 Ctrl+Shift+Enter 를 눌러서 배열식을 만듭니다.

배열식을 이용하면 몇 단계를 거쳐야만 계산할 수 있는 데이터를 한번으로 줄일 수 있습니다. 중복된 불필요한 계산이 많은 경우 배열을 이용해서 간편하게 줄여보세요. 조금 어려웠나요? 그래도 지금까지 잘 해오셨으니까 이 정도쯤이야 식은 죽 먹기나 다름 없죠? 제 성의를 봐서라도 열심히들 하세요~

<참조>
김형백 http://soongin.new21.net/  현재 강좌 PDF로 다운로드 받기 현재 강좌 인쇄하기

 

 

 

배열수식

합계계산시,
조건이 2개이상일 때 DSum 또는 배열수식으로 구한다 < cf, 조건이 1개일 때, Sumif() >

 

수식을 끝내기위해 대괄호가 쓰이는것 같으며 
합계 수식에 쓰입니다. 대괄호가 없으면 계산이 안됨
CTRL+SHIFT+ENTER 동시에 누르면 대괄호 삽입

sum함수의 인수를 조건을 주어서 **** 표 부분이 배열처리하지 않으면 조건의 첫번째값을 단일처리하기 때문에 값을 배열로 처리하여 조건을 충족하는 여러개의 값을 모두 처리하기 위해 배열수식으로 처리하는것입니다.
배열수식으로 입력을 하기위해서 작패님이 말씀하신대로 
CTRL+SHIFT+ENTER 동시에 눌러 수식 바깥쪽에 {}대괄호가 입력되도록 합니다.

배열수식은 여러개의 값을 가집니다. 그 값 중에서 true인 것으로 대응 되는 것들의 값을 계산하게 됩니다.
수식입력줄 에서 함수를 하나 선택해서 그에 해당하는 범위만 블록잡고 F9키를 눌러 보세요..    배열수식 저도 대충 잡은 감만 잡아서 사용합니다만 때로는 나중에보면 제가하고도 어떻게 했는지 헷갈리기도 합니다

반응형

'Tech' 카테고리의 다른 글

Total Commander  (1) 2009.09.07
SecureCRT  (0) 2009.08.17
클립보드의 내용을 지울 수 없습니다  (0) 2009.08.06
수식이 값으로 변환이 안될때  (0) 2009.07.15
순번매기기 와 조건부서식  (0) 2009.06.30
KMPlayer (곰플레이어가 싫어졌어~)  (4) 2009.06.28