11 · TEXT() 書式指定
シナリオ
お金はお金らしく見える必要があり($#,##0.00)、日付はロケールに沿ってきれいに(yyyy-mm-dd)、パーセントに小数 8 桁が付いてはいけません(0.0%)。XTL の TEXT(value, format) がこのレンダリングを担当します。
通貨
{{ TEXT([金額], "¥#,##0") }} → "$1,200.00"
{{ TEXT([金額], "[$¥-ja-JP] #,##0") }} → "¥ 1,200"
{{ TEXT([金額], "#,##0;(#,##0)") }} → 負数は括弧で
日付
{{ TEXT([注文日], "yyyy-mm-dd") }} → "2026-05-12"
{{ TEXT([注文日], "yyyy-mm") }} → "2026-05"
{{ TEXT([注文日], "mmm d, yyyy") }} → "May 12, 2026"
{{ TEXT(TODAY(), "yyyy-mm-dd") }} → 今日(UTC 基準、ADR-0001)
TODAY() は UTC 基準の今日の日付を返します。運用担当者のタイムゾーンが重要なら、TODAY() を呼ぶ代わりに __inputs__ 値として日付を渡してください。
パーセント
{{ TEXT([マージン], "0.0%") }} → "12.3%"(マージンが 0.1234 のとき)
{{ TEXT([レート], "0%") }} → "8%"
文字列連結と組み合わせる
{{ "合計: " & TEXT(SUM([金額]), "¥#,##0") }} → "合計: ¥43,500"
{{ "Run: " & TEXT(TODAY(), "yyyy-mm-dd") }} → "Run: 2026-05-12"
& 演算子は TEXT() の結果をリテラルや他のテキストとつなげます。ヘッダー行、ファイル名、シート名を作るときに便利です。
TEXT() を使うべきでないとき
ほとんどのセルは、テンプレートセルの numFmt を使う方が簡単です。
- Excel でセルに
$#,##0.00書式を事前指定します。 - 式は元の数値だけを参照します:
{{ [金額] }}。 - xl3 が結果にセル書式をそのまま保存します。
こうするとセルは数値型のまま維持されます ― Excel で合計、フィルタリングなどがそのまま動作します。TEXT() はセルを文字列型に強制します。次の場合に TEXT() を使います。
- 書式化された値を文字列連結内に入れる必要があるとき。
- セルの
numFmtでは表現できない書式が必要なとき。 - 結果物がセル書式を適用してくれない場所に流れていくとき(例: CSV コンシューマー)。
サポート書式
xl3 は Excel コア書式表をサポートします。コア表外の書式は ADR-0021 に従って実装定義動作なので ― template.xlsx の移植性を維持するには慣用的な Excel トークンだけを使ってください。
スペック参照
spec/language.mdの「TEXT」とコア書式表。- ADR-0001(
TODAY()は UTC)。 - ADR-0017(日付値モデル)。
- ADR-0021(ユーザー定義書式文字列は実装定義)。