OR 函數用來測試多個條件,只要有任何一個條件成立,結果就是 TRUE;所有條件都不成立時才回傳 FALSE。通常作為 IF 等邏輯函數的條件參數使用。
Excel OR 函數語法
=OR(邏輯值1, [邏輯值2], ...)| 參數 | 必填 | 說明 |
|---|---|---|
| 邏輯值1 | 是 | 要測試的第一個條件或邏輯值,例如 A1>10。 |
| 邏輯值2 | 選填 | 要測試的第二個條件或邏輯值,最多可設定 255 個條件。 |
回傳:回傳布林值:TRUE(至少一個條件成立)或 FALSE(所有條件都不成立)。
適用版本:Excel 2007 以上、Microsoft 365。
OR 函數範例
範例 1:單純判斷出勤紀錄
判斷員工是否有遲到或早退的紀錄。
| 姓名 | 遲到 | 早退 |
|---|---|---|
| 王小明 | 1 | |
| 陳怡君 | ||
| 林志明 | 1 |
在 D2 輸入公式:
=OR(B2, C2)結果:TRUE。測試王小明是否有遲到(B2)或早退(C2)情形。因為 B2 為 TRUE,即使 C2 為 FALSE,只要有一個條件成立,OR 函數就會回傳 TRUE。
範例 2:搭配數值比較判斷獎金資格
判斷業務員是否符合發放獎金的資格(業績大於等於 50 萬或新客數大於等於 10 人)。
| 姓名 | 業績(萬) | 新客數 |
|---|---|---|
| 王小明 | 45 | 12 |
| 陳怡君 | 60 | 8 |
| 林志明 | 40 | 5 |
在 D2 輸入公式:
=OR(B2>=50, C2>=10)結果:TRUE。判斷王小明的業績是否大於等於 50 萬,或者新客數是否大於等於 10 人。雖然業績未達標,但新客數為 12 人符合條件,因此回傳 TRUE。
範例 3:結合 IF 函數發放津貼
判斷是否發放津貼,條件是所屬部門為「業務部」或年資大於等於 5 年,符合顯示「發放」,否則顯示「無」。
| 姓名 | 部門 | 年資 |
|---|---|---|
| 王小明 | 行銷部 | 6 |
| 陳怡君 | 業務部 | 2 |
| 林志明 | 客服部 | 3 |
在 D2 輸入公式:
=IF(OR(B2="業務部", C2>=5), "發放", "無")結果:發放。OR 函數先判斷王小明是否在業務部或年資大於等於 5 年。因為年資為 6 符合條件,OR 回傳 TRUE,接著 IF 函數根據 TRUE 的結果回傳發放。
使用 OR 的技巧與注意事項
- OR 函數最多可以接受 255 個條件參數。
- 在陣列公式中,OR 函數會將整個陣列的結果合併為單一的 TRUE 或 FALSE,若需要逐列判斷,應改用加號 (+) 來進行邏輯 OR 運算。
- 參數如果參照到空白儲存格或純文字,OR 函數會自動忽略這些值。
OR 常見錯誤與解決方法
| 錯誤 | 原因 | 解決方法 |
|---|---|---|
| #VALUE! | 參數中沒有包含任何可以評估為 TRUE 或 FALSE 的邏輯值。 | 確認參數範圍內是否有正確的條件判斷,或是是否參照到了純文字儲存格。 |
| #NAME? | 公式中的文字沒有加上雙引號,導致 Excel 無法辨識。 | 在條件中比對文字時,必須使用半形雙引號將文字包起來,例如 B2="業務部"。 |
Google 試算表可以用 OR 嗎?
Google 試算表完全支援 OR 函數,語法與用法與 Excel 完全相同,沒有任何差異。
下載 OR 範例檔
上面的範例都整理在這個檔案裡,每個範例一個工作表,黃色格子是公式,可以直接改資料看結果變化:OR 範例.xlsx(範例公式都在試算表軟體實際計算過)。
常見問題
OR 函數和 AND 函數有什麼不同?
OR 函數只要有一個條件成立就會回傳 TRUE,而 AND 函數必須所有條件都成立才會回傳 TRUE。OR 適合用在「擇一符合即可」的情境,AND 適合「必須全部符合」的情境。
為什麼我的 OR 函數結果出現 #VALUE! 錯誤?
當 OR 函數的參數中沒有任何可以評估為邏輯值(TRUE 或 FALSE)的內容時,就會出現 #VALUE! 錯誤。請檢查公式內的條件是否設定正確,例如是否有漏寫比較運算子。
OR 函數可以一次判斷一個範圍嗎?例如 OR(A1:A5="是")?
一般情況下,OR(A1:A5="是") 會將整個範圍視為一個整體,只要其中一格為「是」就會回傳單一的 TRUE。若要逐列產生結果,在較新版本的 Excel 中可以搭配 MAP 或 BYROW 函數使用。
這篇收錄在「Excel 函數字典」。




