02 · 條件式儲存格
情境
依照每一列的資料顯示不同的儲存格值。常見兩種模式 — 在兩個值之間二選一的 IF,以及來源為空時做替代的 IFEMPTY。
IF — 在兩個值之間二選一
{{ IF([續約金額] > 10000, "優先", "普通") }}
{{ IF([地區] = "台北", "本地", "外地") }}
{{ IF([負責人] != "", [負責人], "未指派") }}
比較運算子:=、!=、>、<、>=、<=。第三個引數(else 分支)為必填 — XTL 沒有預設的空分支。
IFEMPTY — 替換空值
{{ IFEMPTY([負責人], "未指 派") }}
{{ IFEMPTY([備註], "—") }}
IFEMPTY(value, fallback) 會在 value 為空(缺漏、null、只含空白字元的字串)時回傳 fallback。數字 0 與 false 不是空值 — 那情境請用 IF。
真假判定規則(IF 條件)
- 空值(缺漏、只含空白的字串)為 falsy。
- 字串
"0"與"false"是 truthy — 它們只是非空字串,沒有特殊意義。若想把"0"視為 falsy,請明確比較:IF([金額] != "0", ...)。 - 數字
0與布林false為 falsy。 - 日期一律為 truthy。
用 & 串接衍生文字
{{ "等級-" & IF([續約金額] > 10000, "A", "B") & "-" & [地區] }}
& 是字串串接運算子。運算元會以正規字串形式轉換(見 spec/language.md 的「Canonical String Form」)。
備註
=與!=採 XTL 的比較落差規則 — 數字或數值字串之間做數值比較、布林之間做布林比較、日期之間做時間戳比較,其餘為碼點順序比較。不套用語系排序。IF可以巢狀:IF(a, "X", IF(b, "Y", "Z"))。Excel 使用者會很熟悉,但巢狀過深就難讀 — 建議拆成輔助儲存格或在來源端預先算好。