본문 바로가기
엑셀 특강 (개념 잡기)

013. (엑셀 기초 특강) 동적 배열이란? - 동적 배열 함수, 동적 배열 수식

by Excel.Jump 청출어람 2023. 7. 8.
반응형
엑셀 동적 배열, 동적 배열 함수, 동적 배열 수식

 
 
 
 
 

■ 목차

 
1. 엑셀 동적 배열이란? 
2. (정적) 배열의 특징과 "동적 배열"의 업그레이드된 기능
3. (정적) 배열 수식 입력하기
4. 동적 배열 수식 입력하기
5. 데이터 수정/변동에 따른 (정적) 배열 Vs. 동적 배열 수식 차이
** 핵심 요약
 
 
  - 동적 배열(Dynamic Array)이란 여러 개의 데이터를 가지는 크기가 고정되어 있지 않은 배열이라는 의미입니다.

  - 기존에 Ctrl + Shift + Enter로 사용하던 고정된 크기의 (정적) 배열이 "동적 배열"로 개선이 되어
  - 엑셀이 알아서 자동으로 배열크기에 맞추어서 크기를 확장해 주는 방식으로 다양한 배열 함수에 적용되었으며 
  - 이렇게 "동적 배열"이 적용되는 함수를 "동적 배열 함수"라고 하고 이렇게 만들어진 수식을 "동적 배열 수식"이라고 합니다.

  - "동적 배열"이 어떤 개념이고 기존의 (정적) 배열과 비교해서 어떻게 좋아졌는지 지금부터 확인을 해보도록 하겠습니다.
 
 
 
 
 

1. 엑셀 동적 배열이란? 

 
  - "동적 배열"이란 프로그래밍 자료의 구조적인 측면에서 "크기가 고정되어 있지 않은 배열"을 의미합니다.

  - 이게 최신 엑셀에 적용이 되어 더 이상 배열 수식에서 데이터를 표시하기 위하여 데이터 크기를 미리 지정할 필요가 없이
  - 엑셀이 자동으로 배열 수식 결괏값에 맞게 적절한 크기로 데이터를 모두 표시해 준다는 개념으로 사용이 됩니다. 

  - 그리고 배열 수식의 입력도 "Ctrl + Shift + Enter"가 아닌 일반적인 수식을 입력하는 방식으로 "Enter"키만을 사용할 수 있게 되었습니다. 

  - 사용자 입장에서는 일반 수식, 배열 수식을 구분할 필요 없이 그냥 모두 수식을 입력하고 "Enter"키를 누르게 되면
  - 엑셀이 자동으로 전체 결과를 셀에 표시를 해주는 굉장히 편리한 기능으로 업그레이드가 되었고
  - 이로서 기존의 제한적인 배열 수식의 사용이 한결 편하고 더욱 많이 응용할 수 있는 기초가 되었다고 할 수 있습니다.

  - 기존) 배열 = 정적 배열(Static Array) = 미리 할당된 = 크기가 정해진
    → 표시하고자 지정된 셀의 개수가 배열 데이터 개수보다 많거나, 적은 경우 오류 발생 
    → 그래서 정확하게 배열 데이터의 크기를 미리 알아야 하는
    → 삽입/삭제 등의 유동적인 크기에 대응이 불가능한
  - 엄청 불편한 데이터 구조였음.

  - 신규) 배열 = 동적 배열 (Dynamic Array) = 크기가 정해지지 않은 = 가변 크기의 배열 변환이 가능한
    → 엑셀이 알아서 배열 데이터 크기에 맞춰서 자동으로 표시하고 변경해 줌

  - 단, 배열의 경우 배열이 표시될 셀의 범위 안에 다른 데이터 등이 없어야 정상적으로 모든 데이터 표시가 가능합니다.
  - 또한 배열이기 때문에 즉 한 덩어리의 데이터이기 때문에 부분적인 데이터의 삭제/수정은 모두 불가능합니다. 

  - "동적 배열 함수"로는 Filter, Randarray, Sequence, Sort, Sortby, Unique 함수 등이 있습니다. 
  - 모두 엑셀 2021, MS365 이상의 엑셀 버전에서만 사용이 가능한 함수들입니다. 
 
 
 
 
 

2. (정적) 배열의 특징과 "동적 배열"의 업그레이드된 기능

 
  - 엑셀은 여러 개의 데이터 ( = 배열)을 수식에 적용하여 다양하게 확장된 계념의 문제해결을 할 수 있습니다.
  - 그리고 이게 엑셀 2021, MS365 이전 엑셀 버전에서는 정적인 계념의 배열만을 사용할 수 있었습니다.

  - 1) 기존 (정적) 배열의 특징 : "Ctrl + Shift + Enter"로 배열 수식을 입력한다.
        ==>  변경) 동적 배열 : "Enter"로 동적 배열 수식 입력

  - 배열이라고 하면 간단하게 한 개 이상의 데이터가 한 덩어리로 취급되는 데이터라고 이해를 하시면 됩니다. 

  - 그래서 기존의 엑셀에서는 이러한 데이터를 셀에 표시 하려면 "배열 수식"으로 입력을 해줘야 하는데
  - 이게 일반적인 수식을 셀에 입력할 때는 수식을 모두 입력하고 "Enter"키를 눌러 마무리를 해주면 되지만

  - 기존 엑셀에서 배열 수식을 입력하는 경우는 반드시 "Ctrl + Shift +Enter"를 눌러서 수식을 마무리하고 사용을 해야 했습니다.
  - 그래서 엑셀에서는 "배열 수식"을 "Ctrl + Shift + Enter"로 입력한다고 해서 "CSE 수식"이라고도 합니다.
  
  - 이러한 기존의 CSE의 배열 입력방식을 최신 엑셀에서도 지원을 하지만 사용을 권장하지 않으며
  - 더욱 기능이 향상된 "동적 배열 수식"으로 사용을 권장하고 있습니다. 

  - 그리고 "동적 배열 수식"은 그냥 일반 수식 입력과 동일하게 "Enter"키로 수식입력을 마무리해 주시면
  - 엑셀이 알아서 배열임을 인식하고 적절한 크기의 배열 결괏값을 셀에 자동으로 표시를 해주게 됩니다. ^^
 
 

배열 수식 입력 : Ctrl + Shift + Enter → Enter
* 배열 수식 입력 : Ctrl + Shift + Enter → Enter

 
 
  - 2) 기존 (정적) 배열의 특징 : 크기가 정해진 배열 = 미리 정확한 셀의 크기를 지정해줘야 한다.
        ==>  변경) 동적 배열 : 엑셀이 자동으로 확장한다.

  - 기존 엑셀에서 배열을 셀에 표시하는 경우 가장 불편한 부분입니다.

  - 만약 배열 형식으로 3개의 값을 가지는 데이터를 셀에 표시를 하고 싶다면 먼저 정확하게 3개의 셀을 선택해 줘야만
  - 정확하게 3개의 데이터를 표시하는 것이 가능하였습니다. 
  - 3개보다 더 크게 혹은 더 작게 선택을 하게 되면 오류나 일부분의 데이터만 표시를 하게 됩니다.

  - 하지만 "동적 배열"에서는 엑셀이 자동으로 배열의 크기에 맞춰서 확장해서 표시를 해주게 됩니다. 

  - 이렇게 수식이 입력되는 셀의 범위를 벗어나 확장하는 것을 엑셀에서는 "분산(Spilling)"이라는 표현을 사용합니다.
  - 물이 엎질러져서 퍼지듯이 필요한 크기만큼 셀이 확장되어 데이터가 뿌려지는 것을 의미합니다. ^^

  - 이게 수식이 복잡해지거나 데이터의 개수가 좀 많게 되면 정확하게 배열 수식의 결괏값의 데이터 개수를 모르는 경우가 대부분이기 때문에 개인적으로 정말 원하는 기능이 나온 것 같습니다. 
 
 

기존 배열의 셀 선택 크기에 따른 오류
* 기존 배열의 셀 선택 크기에 따른 오류

 
 
 
 
 

3. (정적) 배열 수식 입력하기

 
  - 간단한 예제를 통하여 (정적) 배열 수식을 어떻게 사용하는지에 대해서 예제를 살펴보도록 하겠습니다.
  - 그냥 개념을 잡는다는 생각으로 가볍게 봐주시기 바랍니다. ^^

  - Filter 함수는 "동적 배열 함수"이지만 (정적) 배열로도 사용이 가능합니다. 
  - 먼저 (정적) 배열 수식으로 사용하는 방식은 아래 예제와 같습니다. 

  - 예제) 5개의 숫자에서 2보다 큰 숫자의 배열 값을 필터링한다.


  - 1) 배열이 출력될 셀 범위 선택 : D2:D4

  - 배열 결괏값을 셀에 출력하기 위하여 (정적) 배열의 경우 먼저 출력될 범위를 정확하게 알아야 합니다.
  - 우리는 5개의 숫자에서 2보다 큰 숫자를 필터링하여 출력할 예정임으로 "D2:D4"의 3개의 셀을 마우스 드래그로 선택하여 줍니다.
 
 

(정적) 배열 - 출력될 셀 범위 선택
* (정적) 배열 - 출력될 셀 범위 선택

 
 
  - 2) 수식 입력 : =FILTER(B3:B7, B3:B7>2, "")

  - 활성화된 첫 번째 셀에 수식입력을 위한 등호 ( " = " )와 Filter함수 그리고 필터링을 위한 인수를 모두 입력합니다.
  - Filter 함수에 대한 경험이 없으신 분들은 입력된 수식과 예제 파일을 참조하여 따라 해 보시기 바랍니다. 


  - 3) (정적) 배열 "Ctrl + Shift + Enter"로 수식 마무리 하기 : {=FILTER(B3:B7, B3:B7>2, "")}

  - (정적) 배열의 경우 수식입력의 마무리를 "Ctrl + Shift + Enter"을 눌러서 입력해줘야 합니다. 
  - 그렇게 되면 전체 수식이 중괄호 ( { } )로 묶인 형태로 표시가 되고 "(정적) 배열 수식"임이 표현되게 됩니다. 
 
 

(정적) 배열 수식 입력 : Ctrl + Shift + Enter
* (정적) 배열 수식 입력 : Ctrl + Shift + Enter

 
 
 
 
 

4. 동적 배열 수식 입력하기

 
  - 이번에는 같은 수식을 "동적 배열 수식"으로 입력을 해보도록 하겠습니다. 
  - 어떻게 다른지 차이를 확인해 보시기 바랍니다. ^^


  - 1) 수식 입력 : =FILTER(B3:B7, B3:B7>2, "")

  - 출력될 위치의 셀 하나를 마우스로 선택하고
  - 수식입력을 위한 등호 ( " = " )와 Filter함수 그리고 필터링을 위한 인수를 모두 입력합니다.


  - 2) "Enter"로 수식 마무리 하기 (동적 배열 수식이 자동 적용됨) : =FILTER(B3:B7, B3:B7>2, "")
 
 

동적 배열 수식 입력 : Enter
* 동적 배열 수식 입력 : Enter

 
 
 
 
 

5. 데이터 수정/변동에 따른 (정적) 배열 Vs. 동적 배열 수식 차이

 
  - 원본 데이터의 변동에 따른 결과로 배열이 어떻게 달라지는지에 대해서 간단하게 보여 드리도록 하겠습니다. 
  - 위의 각각의 배열의 경우에 대해서 원본 데이터의 숫자 4 값에 해당하는 행을 삭제하는 경우 (정적) 배열과 동적 배열이 어떻게 차이가 나는지 확인을 해보시기 바랍니다. 

  - "(정적) 배열 수식"의 경우 결괏값 출력을 위해 선택된 셀의 개수(3개)와 최종 결괏값(2개)의 개수가 차이 나기 때문에 오류값이 생겼습니다.
  - 반면에 "동적 배열 수식"의 경우 자동으로 2개의 결괏값으로 조정이 되어 출력이 되는 것을 알 수가 있습니다. 
 
 

원본 수정에 따른 배열 수식 결괏값 표시 차이
* 원본 수정에 따른 배열 수식 결괏값 표시 차이

 
 
 
 
 

** 핵심 요약 : 동적 배열이란? - 동적 배열 함수, 동적 배열 수식

 
1. 엑셀 동적 배열이란? 

  - 동적 배열이란 프로그래밍 자료의 구조적인 측면에서 "크기가 고정되어 있지 않은 배열"을 의미한다.
  - 엑셀이 자동으로 배열 수식 결괏값에 맞게 적절한 크기로 데이터를 모두 표시해 준다는 개념으로 사용된다.

  - 기존) 배열 = 정적 배열(Static Array) = 미리 할당된 = 크기가 정해진
    → 표시하고자 지정된 셀의 개수가 배열 데이터 개수보다 많거나, 적은 경우 오류 발생 
    → 그래서 정확하게 배열 데이터의 크기를 미리 알아야 하는
    → 삽입/삭제 등의 유동적인 크기에 대응이 불가능한
  - 엄청 불편한 데이터 구조였음.

  - 신규) 배열 = 동적 배열 (Dynamic Array) = 크기가 정해지지 않은 = 가변 크기의 배열 변환이 가능한
    → 엑셀이 알아서 배열 데이터 크기에 맞춰서 자동으로 표시하고 변경해 줌

  - "동적 배열 함수"로는 Filter, Randarray, Sequence, Sort, Sortby, Unique 함수 등이 있다.


2. (정적) 배열의 특징과 "동적 배열"의 업그레이드된 기능

  - 1) 기존 (정적) 배열의 특징 : "Ctrl + Shift + Enter"로 배열 수식을 입력한다.
        ==>  변경) 동적 배열 : "Enter"로 동적 배열 수식 입력

  - 2) 기존 (정적) 배열의 특징 : 크기가 정해진 배열 = 미리 정확한 셀의 크기를 지정해줘야 한다.
        ==>  변경) 동적 배열 : 엑셀이 자동으로 확장한다.


3. (정적) 배열 수식 입력하기

  - 예제) 5개의 숫자에서 2보다 큰 숫자의 배열 값을 필터링하기

  - 1) 배열이 출력될 셀 범위 선택 : D2:D4
  - 2) 수식 입력 : =FILTER(B3:B7, B3:B7>2, "")
  - 3) (정적) 배열 "Ctrl + Shift + Enter"로 수식 마무리 하기 : {=FILTER(B3:B7, B3:B7>2, "")}


4. 동적 배열 수식 입력하기

  - 1) 수식 입력 : =FILTER(B3:B7, B3:B7>2, "")
  - 2) "Enter"로 수식 마무리 하기 (동적 배열 수식이 자동 적용됨) : =FILTER(B3:B7, B3:B7>2, "")


5. 데이터 수정/변동에 따른 (정적) 배열 Vs. 동적 배열 수식 차이

  - "(정적) 배열 수식"의 경우 선택된 셀의 개수와 결괏값의 개수가 달라져 오류값이 생길 수 있다.
  - "동적 배열 수식"의 경우 자동으로 조정이 되어 출력된다.
 
 

예제 13. 동적 배열
0.01MB

 
 

[엑셀 특강 (개념 잡기)] - 999. 엑셀 기초 특강 목차
 

999. 엑셀 기초 특강 목차

[엑셀 특강 (개념 잡기)] - 001. (엑셀 기초 특강) 엑셀 데이터란? (feat. 숫자, 문자, 날짜 무엇이 다른가?) [엑셀 특강 (개념 잡기)] - 002. (엑셀 기초 특강) 엑셀 함수란? (feat. 왜 그렇게 어렵고 많아야

nextmeok.tistory.com

 

 
 
 
* 엑셀 관련 궁금하신 거나 어려운 점이 있으시면 자유롭게 질문을 해주세요.
* 가능한 도움을 드릴 수 있도록 하겠습니다.
* 저도 많이 알지는 못하지만 누구나 그렇듯 시작이란 게 있고 경험이란 게 다를 것 같습니다.
* 편하게 문의하시면 됩니다. 저도 모를 수 있다. 감안해 주시고.

  - ILU, SH -

반응형

댓글