
엑셀 VSTACK·HSTACK·TOCOL·TOROW·TAKE·DROP — 표 합치기·재구성 30가지 레시피
환경: Excel 365 최신 함수 기준. 예제는 직접 재현했으며, 초안 정리에 AI 도구를 보조적으로 활용했습니다.
연계 가이드(내부 링크 7개 이상)
1) 치트시트(기본 문법)
// 세로 합치기
=VSTACK(A2:C10, E2:G10)
// 가로 합치기
=HSTACK(A2:C10, E2:G10)
// 한 열로 평탄화 (빈 셀 제거)
=TOCOL(A2:D10, 1) // [ignore] = 1 → 빈값 제거
// 한 행으로 평탄화
=TOROW(A2:D10, 1)
// 위/아래/좌/우 잘라내기
=TAKE(A2:D100, 10) // 위에서 10행
=DROP(A2:D100, -5) // 아래에서 5행 제거
TIP 범위는 표(Table)로 만들어 두면 열 이동에도 수식이 안전합니다.
2) 합치기: VSTACK/HSTACK 10가지(복붙용)
// ① 월별 시트 합치기
=VSTACK(Jan!A1:F100, DROP(Feb!A1:F100,1), DROP(Mar!A1:F100,1))
// ② 서로 다른 열 순서를 강제 정렬(CHOOSECOLS)
=VSTACK(CHOOSECOLS(T1,1,3,2), CHOOSECOLS(T2,1,3,2))
// ③ 조건을 만족하는 표만 이어붙이기
=VSTACK(FILTER(Sales1, Sales1[Region]="Seoul"),
FILTER(Sales2, Sales2[Region]="Seoul"))
// ④ 합친 뒤 중복 제거
=UNIQUE(VSTACK(TblA, TblB))
// ⑤ 헤더 1개만 남기기
=VSTACK(TAKE(TblA,1), DROP(TblA,1), DROP(TblB,1))
// ⑥ 가로 합치기(HSTACK)로 ‘설명+가격’ 붙이기
=HSTACK(Products[Name], Products[Price])
// ⑦ HSTACK으로 가변 열 병합
=HSTACK(CHOOSECOLS(Tbl,1), TOCOL(CHOOSECOLS(Tbl,2,3,4)))
// ⑧ 표 + 요약표 나란히
=HSTACK(Tbl, H2:J10)
// ⑨ 여러 파일 요약(외부 참조)
=VSTACK('[Jan.xlsx]Sheet1'!A2:F100, '[Feb.xlsx]Sheet1'!A2:F100)
// ⑩ 피벗 없이 월/지역별 합계 옆에 붙이기
=HSTACK(SUMIFS(Total, Month, K2:K13), UNIQUE(Region))
3) 재구성: TOCOL/TOROW 10가지
// ① 2차원 → 1열(빈값 제거)
=TOCOL(A2:D20, 1)
// ② 2차원 → 1행
=TOROW(A2:D20, 1)
// ③ 열 우선/행 우선 제어([scan_by_col])
=TOCOL(A2:D20, 1, TRUE) // 열 우선
=TOROW(A2:D20, 1, FALSE) // 행 우선
// ④ 고유 태그 리스트
=SORT(UNIQUE(TOCOL(Posts[Tags], 1)))
// ⑤ 평탄화 후 조건 필터
=FILTER(TOCOL(B2:E20,1), TOCOL(B2:E20,1)>=100)
// ⑥ 열 헤더를 라벨로 붙여 문장화
=TEXTJOIN(", ",,TOROW(HSTACK(Tbl[#Headers],TAKE(Tbl,1)),1))
// ⑦ 2D 범위에서 n번째 값 찾기
=INDEX(TOCOL(A2:D20), n)
// ⑧ 평탄화 후 순위
=LET(c,TOCOL(Scores,1), RANK(c, c))
// ⑨ TOCOL → COUNTIF 고유 개수
=ROWS(UNIQUE(TOCOL(A2:D20,1)))
// ⑩ TOCOL + TEXTSPLIT로 다중 구분자 분해 후 리스트화
=SORT(UNIQUE(TOCOL(TEXTSPLIT(A2:A,", "),1)))
4) 자르기: TAKE/DROP 6가지
// ① 상위 n행만 보기
=TAKE(SORT(Tbl,-1), 10)
// ② 아래쪽 n행 제거
=DROP(Tbl, -5)
// ③ 오른쪽 마지막 열 제거
=DROP(Tbl,, -1)
// ④ 왼쪽 첫 2열만
=TAKE(Tbl,, 2)
// ⑤ 헤더만 분리
=TAKE(Tbl, 1)
// ⑥ 데이터만 분리(헤더 제외)
=DROP(Tbl, 1)
5) 콤보 레시피 4가지
① 12개월 매출을 한 표로 + 최신 3개월만
=TAKE(SORT(VSTACK(Sales2025, Sales2024), 1, -1), 90)
② 카테고리별 상품을 한 열에 모으고 고유화
=SORT(UNIQUE(TOCOL(CHOOSECOLS(Products, XMATCH({"A","B","C"}, Products[#Headers])), 1)))
③ VSTACK 후 요약(고유+개수)
=LET(v, VSTACK(TblA[Item], TblB[Item]), HSTACK(UNIQUE(v), BYROW(UNIQUE(v), LAMBDA(x, COUNTIF(v, x)))))
④ HSTACK으로 설명/가격/재고 카드 만들기
=HSTACK(Products[Name], CHOOSECOLS(Products, XMATCH({"Price","Stock"}, Products[#Headers])))
6) 오류·성능 체크리스트
- #SPILL! — 스필 범위 비우기(값/병합/도형 점검)
- 서로 다른 헤더/열 순서 →
CHOOSECOLS로 정렬 - 대량 데이터 → 파워쿼리(병합/추가)로 전처리 후 VSTACK
- 표(Table) 권장: 열 이동에도 참조 안전, 성능↑
- 오류 메시지 표준화:
IFERROR(수식,"없음")
이제 COUNTIF·COUNTIFS 또는 SEARCHABLE DROPDOWN와 결합해 입력·집계를 자동화하세요.