跳至主要內容

02 · 條件式儲存格

情境

依照每一列的資料顯示不同的儲存格值。常見兩種模式 — 在兩個值之間二選一的 IF,以及來源為空時做替代的 IFEMPTY

IF — 在兩個值之間二選一

{{ IF([續約金額] > 10000, "優先", "普通") }}
{{ IF([地區] = "台北", "本地", "外地") }}
{{ IF([負責人] != "", [負責人], "未指派") }}

比較運算子:=!=><>=<=。第三個引數(else 分支)為必填 — XTL 沒有預設的空分支。

IFEMPTY — 替換空值

{{ IFEMPTY([負責人], "未指派") }}
{{ IFEMPTY([備註], "—") }}

IFEMPTY(value, fallback) 會在 value 為空(缺漏、null、只含空白字元的字串)時回傳 fallback。數字 0false 不是空值 — 那情境請用 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 使用者會很熟悉,但巢狀過深就難讀 — 建議拆成輔助儲存格或在來源端預先算好。