
엑셀 KPI 카드 레이아웃: WRAPROWS·VSTACK·SPARKLINE로 자동 배치
엑셀 KPI 카드 레이아웃을 동적 배열 스필(#)과 WRAPROWS·VSTACK, SPARKLINE으로 표준화하면 데이터가 늘어나도 자동으로 갱신·정렬됩니다. 아래 예제는 복붙 즉시 재현됩니다.
Quick Fix: 10분 완성(4종 카드)
- 원본을 Ctrl+T로 테이블화(Sales).
- J2에 날짜별 합계 스필(Date|Revenue|Orders) 생성.
- K2에 KPI 4종을
WRAPROWS로 2열 카드화. - L2에 Revenue/Orders
SPARKLINE생성. - O2에서
VSTACK/HSTACK으로 2×2 그리드 자동 배치.
날짜별 합계 스필(J2)
=LET(
d, SORT(UNIQUE(Sales[Date])),
rev, MAP(d, LAMBDA(x, SUM(FILTER(Sales[Revenue], Sales[Date]=x)))),
ord, MAP(d, LAMBDA(x, SUM(FILTER(Sales[Qty], Sales[Date]=x)))),
HSTACK(d, rev, ord)
)
KPI 4종 카드(K2)
=LET(
totalRev, SUM(Sales[Revenue]),
totalOrd, SUM(Sales[Qty]),
aov, IF(totalOrd=0, 0, totalRev/totalOrd),
end, TODAY(),
cur7, SUM(FILTER(Sales[Revenue], Sales[Date] > end-7)),
prev7, SUM(FILTER(Sales[Revenue], (Sales[Date] <= end-7)*(Sales[Date] > end-14))),
delta, IF(prev7=0, 1, (cur7-prev7)/prev7),
flat, {"Revenue", totalRev, "Orders", totalOrd, "AOV", aov, "7d vs prev", delta},
WRAPROWS(flat, 2, "")
)
스파크라인(L2)
=LET(
r, INDEX(J2#, , 2),
o, INDEX(J2#, , 3),
HSTACK(SPARKLINE(r), SPARKLINE(o))
)
그리드 자동 배치(O2)
=LET(
base, KPI_Base,
names, TAKE(base,,1),
vals, TAKE(base,,2),
spark, L2#,
VSTACK(
HSTACK(INDEX(names,1), INDEX(vals,1), INDEX(spark,1), ""),
HSTACK(INDEX(names,2), INDEX(vals,2), "", ""),
HSTACK(INDEX(names,3), INDEX(vals,3), "", ""),
HSTACK(INDEX(names,4), INDEX(vals,4), "▲/▼", "")
)
)
Troubleshooting
| 증상 | 원인 | 해결 |
|---|---|---|
| #SPILL! | 스필 충돌 | 영역 비우기 |
| 스파크라인 비정상 | 누락/정렬 문제 | pad/정렬 재확인 |
| 증감 색 미적용 | 텍스트만 변경 | 조건부 서식 아이콘/색 사용 |
| 숫자 서식 불일치 | 표시 형식 미통일 | #,##0 / 0.0% 등 통일 |
맺음말
WRAPROWS·VSTACK·SPARKLINE만으로 엑셀 KPI 카드 레이아웃을 자동 배치했습니다. 다음 글은 Power Query 기초로 이어집니다.