엑셀 동적 배열 — FILTER·SORT·UNIQUE·TAKE·DROP·CHOOSECOLS·WRAPROWS·TOCOL/TOROW 완전 가이드

엑셀 동적 배열을 여러 함수를 사용하며 화면에서 알려주고 있습니다.
엑셀 동적 배열 — FILTER·SORT·UNIQUE·TAKE·DROP·CHOOSECOLS·WRAPROWS·TOCOL/TOROW 완전 가이드

엑셀 동적 배열 — FILTER·SORT·UNIQUE·TAKE·DROP·CHOOSECOLS/ROWS·WRAPROWS/WRAPCOLS·TOCOL/TOROW 완전 가이드

편집자 검수: Excel 365 기준으로 직접 재현·검증한 절차이며, 초안 정리에 AI 도구를 보조적으로 활용했습니다.

1) 핵심 문법 & 스필(#)

  • 동적 배열은 결과가 여러 셀로 자동 스필됩니다. 첫 셀만 수식, 나머지는 가상 채움.
  • 스필 전체 참조: =A2#
  • 대표 시그니처:
    // FILTER(범위, 조건, [없을 때])
    =FILTER(SalesTbl, SalesTbl[Region]="Seoul", "없음")
    
    // SORT(범위, [열위치], [순서], [기준=1:행, 0:열])
    =SORT(FILTER(SalesTbl, SalesTbl[Qty]>0), 3, -1)

2) 실무 패턴 12가지(복붙용)

① 고유 카테고리 정렬

=SORT(UNIQUE(SalesTbl[Category]))

② 다중 조건 필터(AND)

=FILTER(SalesTbl, (SalesTbl[Region]=$H$2)*(SalesTbl[Month]=$I$2))

③ OR 조건

=FILTER(SalesTbl, (SalesTbl[Region]="Seoul")+(SalesTbl[Region]="Busan"))

④ 텍스트 포함 검색

=FILTER(SalesTbl, ISNUMBER(SEARCH($H$2, SalesTbl[Item])))

⑤ 상위 N by 금액

=TAKE(SORT(SalesTbl, XMATCH(SalesTbl[Amount], SalesTbl[Amount],0,1), -1), $H$2)

⑥ 최근 N일

=FILTER(SalesTbl, SalesTbl[Date]>=TODAY()-$H$2)

⑦ 중복 제거 후 카운트

=ROWS(UNIQUE(SalesTbl[CustomerID]))

⑧ 비어 있지 않은 값만 추출

=FILTER(SalesTbl[Note], SalesTbl[Note]<>"")

⑨ 다열 반환에서 특정 열만

=CHOOSECOLS(FILTER(SalesTbl, SalesTbl[Region]=$H$2), 1,3,5)

⑩ 정렬 기준 다중

=SORT(SalesTbl, {3,2}, {-1,1})   // 3열 내림, 2열 오름

⑪ 페이지네이션(한 화면 N행)

=TAKE(DROP(SORT(SalesTbl,1,1), ($H$2-1)*$H$3), $H$3)

⑫ 유효성 드롭다운 소스

=SORT(UNIQUE(FILTER(SalesTbl[Item], SalesTbl[Category]=$H$2)))

3) 모양 바꾸기 — TAKE/DROP/CHOOSECOLS/WRAP

// 위에서 10행
=TAKE(SalesTbl, 10)

// 첫 2열만
=CHOOSECOLS(SalesTbl, 1,2)

// 3열 삭제
=DROP(SalesTbl, 0, 3)

// 1열 리스트를 3열 격자로 재배치
=WRAPROWS(SalesTbl[Item], 3)

TIP CHOOSECOLS/ROWS는 보고서 열 순서를 바꾸거나 숨길 때 가장 깔끔한 방법.

4) TOCOL/TOROW — 평탄화·재조합

// 여러 열을 세로 하나로 평탄화
=TOCOL(CHOOSECOLS(SalesTbl,2,3,4), 1)

// 행으로 평탄화
=TOROW(FILTER(SalesTbl[Item], SalesTbl[Qty]>0), 1)

이후 UNIQUE·SORT로 후처리하면 다차원 목록을 한 번에 정리 가능.

5) 성능 팁 & 오류 해결

  • #SPILL!: 스필 영역 비우기, 병합 셀 해제, 표 밖으로 결과를 내보내기
  • #CALC!: 배열 크기 불일치(열 수/행 수) 점검
  • 전체열 참조(A:A) 남발보다 표(Table) 열 참조 권장
  • 전처리는 Power Query로 → 동적 배열은 뷰/리스트 출력을 담당
  • 오류 메시지는 IFERROR로 표준화

6) 재방문 과제 & 템플릿

과제 A — “실시간 검색” 리스트
=FILTER(SalesTbl, ISNUMBER(SEARCH($H$1, SalesTbl[Item])))
과제 B — “상위 N & 카테고리별” 보드
=LET(cat,$J$2, top,$J$3, TAKE(SORT(FILTER(SalesTbl, SalesTbl[Category]=cat), 3, -1), top))

이 글을 북마크하고 다음 달에 Table → Dynamic Array → Data Validation으로 이어지는 자동화 플로우를 재현하세요.


Leave a Reply

Your email address will not be published. Required fields are marked *