16 · XTL 함수 vs Excel 수식
자주 부딪히는 함정 — 여기서부터 시작
이 페이지를 열어본 이유는 보통 무언가가 예상대로 동작하지 않아서일 가능성이 높습니다. 가장 흔한 경우들:
"셀에 ₩1,234,567을 표시하고 싶은데 TEXT([금액], "₩#,##0")이 안 돼요"
XTL의 TEXT()가 지원하는 포맷 토큰은 일부러 작게 잡혀 있고, 통화 토큰은
포함되지 않습니다. 정답은 셀의 숫자 표시 형식(numFmt):
| 단계 | 위치 |
|---|---|
1. 템플릿 셀의 셀 서식을 "₩"#,##0 으로 설정 | Excel의 셀 서식 → 사용자 지정 |
2. 같은 셀에 {{ [금액] }} (순수 숫자만)을 입력 | XTL 치환 |
렌더링된 셀에는 숫자가 들어있고, Excel이 이를 ₩1,234,567로 표시합니다.
값이 여전히 숫자이기 때문에 정렬, 필터링, 다른 수식 참조가 모두 정상 동작합니다.
같은 패턴이 (1,234) 형식의 음수 회계 표기(#,##0;(#,##0)), 백분율
(0.00%), 날짜(yyyy-mm-dd) 등에도 그대로 적용됩니다.
"=B2*2로 행마다 계산하고 싶은데 모든 행이 같은 결과를 보여줘요"
xl3는 @repeat로 행을 확장할 때 수식 텍스트를 글자 그대로 보존합니다 —
B2를 B3, B4로 자동으로 바꾸지 않습니다 (계약은 ADR-0046 참조).
대신 XTL 표현식을 쓰세요:
{{ [금액] * 2 }}
이건 렌더 시점에 각 행마다 평가되어 계산된 숫자가 셀에 들어갑니다. 같은 결과지만 행 참조 혼동이 없습니다.
"하단에 합계를 두고 싶은데 =SUM(B2:B5)가 행이 늘어나도 범위가 안 늘어요"
원인은 같습니다 — xl3는 범위 참조도 다시 쓰지 않습니다. 두 가지 선택지:
- 전체 열 참조를 footer에 두기:
=SUM(B:B)(또는@filter로 위쪽에서 데이터 행만 남기기). - XTL 집계 함수: footer 셀에
{{ SUM([금액]) }}를 두기. 렌더 시점에 계산되어 숫자로 들어갑니다.
"행마다 클릭 가능한 링크를 넣고 싶어요"
XTL의 HYPERLINK() 함수를 쓰세요 (URL/label 모두 컬럼 참조 가능):
{{ HYPERLINK([URL], [표시명]) }}
정적 URL이면 셀에 =HYPERLINK("https://...", "label") 수식을 직접 넣어도
됩니다 (xl3가 보존합니다).