設計手冊
遇到問題了嗎?不用擔心,答案都在這。
全站搜尋

條件公式

你可以使用條件公式來設定在符合條件時回傳特定欄位值,例如當條件符合時回傳「是」,或加總符合條件的欄位值。

公式列表

以下列出所有支援的公式。公式請一律用大寫表示!

公式 敘述
IF(value==condition,[value_if_true],[value_if_false]) 依據條件回傳值,符合某一個情況回傳 TRUE,如果不是此情況則回傳 FALSE。查看詳細內容
IFS() 檢查多個條件符合,並傳回第一個為 TRUE 的條件的對應值。查看詳細內容
LOOKUP(value,lookup_list,[result_list]) 在 lookup_list 搜尋值,然後傳回值所在 result_list 的位置。查看詳細內容。
AND(logical1, [logical2], ...) 當條件全部滿足時傳回 TRUE,在一個或多個條件不滿足時傳回 FALSE。查看詳細內容。
OR(logical1, [logical2], ...) 當任一個條件滿足時傳回 TRUE,在全部條件都不滿足時傳回 FLASE。查看詳細內容。
NOT(logical) 當條件不滿足時傳回 TRUE,條件滿足時則傳回 FALSE。查看詳細內容。
UPDATEIF(condition,value_if_true) 只有當條件符合的時候才更新欄位值。查看詳細內容
COUNTIF(criterai_range,criteria) 回傳計算子表格中每一列符合判定標準的值總(次)數。查看詳細內容
COUNTIFS(criteria_range1,criteria1,[criteria_range2,criteria2]...) 回傳計算子表格中每一列符合多個判定標準的值總(次)數。查看詳細內容
SUMIF(range,criteria,[sum_range]) 回傳計算子表格中每一列符合判定標準的值總和。查看詳細內容
SUMIFS(sum_range,criteria_range1,criteria1,[criteria_range2, criteria2],...) 回傳計算子表格中每一列符合多個判定標準的值總和。查看詳細內容
MAXIFS(max_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...) 根據指定的一組或多組條件傳回指定之子表格範圍的最大值。查看詳細內容
MINIFS(min_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...) 根據指定的一組或多組條件傳回指定之子表格範圍的最小值。查看詳細內容

公式使用注意事項

要特別注意欄位種類可能會改變公式在某些情況下的計算方式。

有兩種情況公式中條件的參照欄位後面需要加上 .RAW

1. 當條件公式的條件是參照兩個欄位,並且用運算符號「=」來判斷兩個欄位值是否相等時,需要在設定條件時將這兩個參照欄位後面加上 .RAW,如果是只參照一個欄位,並利用運算符號「=」來判斷等於一個固定的值,則不需要。

2. 當套用公式的欄位是數字欄位,要做數字運算,但是條件是參照字串欄位(文字、選項、日期等),並用運算符號「=」來判斷等於一個固定的字串時,設定條件時參照的字串欄位要加上 .RAW。

何時要加上 .RAW 的詳細內容可以參考這篇

日期欄位會被以天數來計算。

你也可以利用多層的條件判斷來寫出 IF 公式。

IF 函數說明與應用

IF 函數:判斷值

IF 公式依據條件情況回傳值,例如如果符合某一個情況則回傳 TRUE,如果不是此情況則回傳 FALSE。

公式 語法
IF IF(value==condition,[value_if_true],[value_if_false])

範例:

IF(A2==10,10,0),如果 A2 等於 10,這個值在這個欄位將會是 10。若 A2 出現其他的值,則會回傳 0。

IF(A1==1,'true','false'),如果 A1 等於 1,則會回傳「true」。若 A1 出現其他的值,則回傳「false」。

IF(A2>=60,'yes','no'),如果 A1 等於或大於 60,則會回傳「Yes」,否則回傳「No」。

備註:

Ragic 仍然支援 IF 功能的舊語法。

Value=='condition'?'[value_if_true]':'[value_if_false]'

範例:A1=='open'?'O':'C'

如果 A1 是 open, 則出現 O,如果不是則出現 C。

IF 函數:何時要加上 .RAW?

1. 參照兩個欄位且判斷相等的條件

如果你的條件是利用「=」的運算符號來判斷兩個欄位是否相等的話,請在填寫條件的地方,將這兩個參照欄位後面加上.RAW

語法
IF(field1.RAW=field2.RAW,[value_if_true],[value_if_false])

範例:

IF(A1.RAW=A2.RAW,1,0),如果 A1 的欄位值等於 A2 的欄位值,回傳 1;否則回傳 0。

IF(A1.RAW=A2.RAW,'Open','Closed'),如果 A1 的欄位值等於 A2 的欄位值,回傳「Open」;否則回傳「Closed」。

2. 在 IF 中與字串做相等比較的判斷條件

語法
IF(string_field1.RAW="string",[numeric_value_if_true],[numeric_value_if_false])

範例:

IF(A1.RAW="Yes",1,0),如果 A1 的欄位值等於字串「Yes」,回傳 1;否則回傳 0。

如果你只參照一個數字欄位,並利用運算符號「=」來判斷是否等於一個固定的值,不需要另外加上 .RAW。

範例:

IF(A1=1,"YES","NO"),如果 A1 的欄位值等於 1,回傳「YES」;否則回傳「NO」。

3. 當公式中要區別空值與 0

例如公式為 IF(A8.RAW='',"TRUE","FALSE"),需判斷某個欄位是不是空的,而且那個欄位值可能會是 0 的時候,應加上 .RAW。

4. 參照的自由輸入欄位值為數字,想要將該數字以字串形式回傳

例如 A1「號碼」 是自由輸入欄位,值是 10001,A2「會員編號」是連結欄位,希望透過公式帶入 A1 的值,則可以在 A2 設定公式 IF(A1!="",A1.RAW) 。

IF 函數:擷取字串

如想要在 IF() 公式中擷取其他欄位的字串,像是公式 LEFT() 、 RIGHT() 、 MID () 等, 你必須先轉換該欄位為字串形式,系統才能正確擷取。轉換方式為在參照欄位後方加上「+""」。

範例:

假設你想要參照 A5 欄位的前兩位文字進行判斷,可以使用如下公式:IF(A1="Yes",A5,LEFT(A5+"",2)),如果欄位 A1 為 Yes ,則帶入 A5 欄位值;若 欄位 A1 不是 Yes ,則顯示 A5 欄位的首兩位文字。

IF 函數:参照 TODAY() 或 NOW() 的處理方式

目前因為系統限制,不支援將 TODAY() 或 NOW() 直接加入至 IF() 進行運算,你必須要另外新增一個欄位先取得 TODAY() 或 NOW() 的值後再進行運算。

範例:

假設要將 A1 作為判斷依據,評估資料是否還有效,那麼你可以將 TODAY() 放在 A2 欄位,並套用公式:IF(A1>A2,"Valid","Expired"),如果欄位 A1 的值大於 TODAY() ,則顯示「Valid」;若欄位 A1 的值小於 TODAY() ,則顯示「Expired」。

假設要將 A1 與 TODAY() 比較,可以將整個運算,例如 A1-TODAY() 放在 A2 欄位,並套用公式:IF(A2>0,"Valid","Expired"),如果欄位 A2 的值大於 0,則顯示「Valid」;若欄位 A1 的值小於 TODAY() ,則顯示「Expired」。

注意:TODAY() 或 NOW() 並不會每日自動重算,因此舊有資料的 TODAY() 或 NOW() 欄位會顯示為上次更新資料的時間。如果你希望可以每日自動重算以顯示最新的資料狀態,可以考慮寫程式讓公式每天重新計算

IF 函數:日期欄位

1. 可以在非日期欄位套用 IF 比較日期欄位大小

例如 A1、A2 為日期欄位,A2 套用 TODAY(),A4 選項欄位套用 IF(A1>A2,"已逾期","未逾期")

2. 不能在非日期欄位套用 IF 來運算日期欄位值,必須另建數字欄位來做加減運算

同上例,但 A4 的公式改為 IF(A1-1>A2,"已逾期,"未逾期") 會執行錯誤,在這情況下要另外建立兩個數字欄位: C1、C2,C1 套用 A1-1,C2 套用 A2,A4 公式改為 IF(C1>C2,"已逾期","未逾期")

子表格條件公式

COUNTIF 函數

利用 COUNTIF 來計算子表格中每一列符合判定標準的總數。例如,算出收據上的特定一項物品的總數。

公式 語法
COUNTIF COUNTIF(criteria_range,criteria)

參數說明:

criteria_range(必要):範圍必須是在子表格內的欄位並確認其值是否符合相關的標準。

criteria(必要):此標準會定義出哪些在 criteria_range 內的儲存格會被加入。可以一個數字、表達式、參考其他欄位的值,或是文字串來決定哪些儲存格會被列入計算。參考下表:

應用範例 輸入範例
指定數字 "8"
數字比較式 "> 8"、"< 8"、"!= 8"
指定字串 "apple"
字串不等式 "!='apple'"(外面引號與裡面引號要為不同引號,例如外面一組雙引號裡面一組單引號)
指定子表格欄位 A4 (不用加上一組雙引號或是加上「=」,直接寫該欄位即可)
指定與子表格欄位比較 "> A4"、"< A4"、"!=A4"

注意:此函數只能參考單一個子表格的內容,並套用在獨立欄位中。僅支援一組條件,若需多重條件,請使用 COUNTIFS 函數。

範例:

設在 A9 的公式 COUNTIF(A4,'蘋果') 會回傳子表格內每一行 A4 欄位下產品名稱是「蘋果」的總數。

COUNTIFS 函數

公式 語法
COUNTIFS COUNTIFS(criteria_range1,criteria1,[criteria_range2,criteria2]...)

參數說明:

criteria_range1(必填):範圍必須是在子表格內的欄位並確認其值是否符合相關的標準。

criteria1(必填):此標準會定義出哪些在 criteria_range1 內的儲存格會被加入。可以一個數字、表達式、參考其他欄位的值,或是文字串來決定哪些儲存格會被列入計算。參考下表:

應用範例 輸入範例
指定數字 "8"
數字比較式 "> 8"、"< 8"、"!= 8"
指定字串 "apple"
字串不等式 "!='apple'"(外面引號與裡面引號要為不同引號,例如外面一組雙引號裡面一組單引號)
指定子表格欄位 A4 (不用加上一組雙引號或是加上「=」,直接寫該欄位即可)
指定與子表格欄位比較 "> A4"、"< A4"、"!=A4"

criteria_range2, criteria2,...(選填):計算附加的範圍內符合其相關標準的值。

注意:此函數只能參考單一個子表格的內容,並套用在獨立欄位中。

SUMIF 函數

利用 SUMIF 來算子表格中每一列符合判定標準的值其總和。例如,算出收據上的特定商品的總金額。

公式 語法
SUMIF SUMIF(range,criteria,[sum_range])

參數說明:

range(必填):範圍必須是在子表格內的欄位並確認其值是否符合相關的標準。

criteria(必填):此標準會定義出哪些在 range 內的儲存格會被加入。可以一個數字、表達式、參考其他欄位的值,或是文字串來決定哪些儲存格會被列入計算。參考下表:

應用範例 輸入範例
指定數字 "8"
數字比較式 "> 8"、"< 8"、"!= 8"
指定字串 "apple"
字串不等式 "!='apple'"(外面引號與裡面引號要為不同引號,例如外面一組雙引號裡面一組單引號)
指定子表格欄位 A4 (不用加上一組雙引號或是加上「=」,直接寫該欄位即可)
指定與子表格欄位比較 "> A4"、"< A4"、"!=A4"

sum_range(選填):如果要加總的不是 range 參數中指定的儲存格,這便是要加總的實際儲存格。如果省略 sum_range 參數,便會加總 range 引數中所指定的儲存格 (即是套用準則的相同儲存格)。

注意:此函數只能參考單一個子表格的內容,並套用在獨立欄位中。僅支援一組條件,若需多重條件,請使用 SUMIFS 函數。

範例:

在 A9 套用 SUMIF(A4,'蘋果',B4),會回傳子表格內每一行如果 A4 欄位下產品名稱是「蘋果」時,其 B4 值的總和。

SUMIFS 函數

利用 SUMIFS 來算子表格中每一列符合多個判定標準的值其總和。例如,算出收據上在特定存貨位置的特定商品的總金額。

公式 語法
SUMIFS SUMIFS(sum_range,criteria_range1,criteria1,criteria_range2, criteria2,...)

參數說明:

sum_range(必填):範圍必須是在子表格內的欄位並確認其值是否符合相關的標準。

criteria_range1(必填):criteria_range1 和 criteria1 設定了其中範圍內的特定尋找標準。一旦範圍內的項目被找出,其相對應的值就會在 sum_range 被加進去。

criteria1(必填):此標準會定義出哪些在 criteria_range1 內的儲存格會被加入。可以一個數字、表達式、參考其他欄位的值,或是文字串來決定哪些儲存格會被列入計算。參考下表:

應用範例 輸入範例
指定數字 "8"
數字比較式 "> 8"、"< 8"、"!= 8"
指定字串 "apple"
字串不等式 "!='apple'"(外面引號與裡面引號要為不同引號,例如外面一組雙引號裡面一組單引號)
指定子表格欄位 A4 (不用加上一組雙引號或是加上「=」,直接寫該欄位即可)
指定與子表格欄位比較 "> A4"、"< A4"、"!=A4"

criteria_range2,criteria2,...(選填):計算附加的範圍內符合其相關標準的值。 需特別留意的是,在 SUMIFS 中,條件(criteria)必須下在不同的欄位。如果是需要將條件下在同一欄位中,例如加總當該欄位等於 a 或是等於 b 的情況時,就必須要使用多個 SUMIF() 相加。

注意:此函數只能參考單一個子表格的內容,並套用在獨立欄位中。

範例:在 A52 設定公式 SUMIFS(C45, B45, " > A50 ", B45 ," < A51 ") 會將子表格中訂單日 (B45) 大於起始日 (A50) 以及小於結束日 (A51) 的資料的金額做加總算出日期區間內訂單金額的總和。

MAXIFS 函數

MAXIFS 函數可根據一個或多個條件,從指定範圍中找出符合條件的最大值。常用於找出最高售價、最大金額或最新日期等情境。

公式 語法
MAXIFS MAXIFS(max_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)

參數說明:

max_range(必填):要找出最大值的子表格欄位範圍。

criteria_range1(必填):第一個條件的範圍,用來篩選符合條件的資料。

criteria1(必填):第一個條件,用於篩選 criteria_range1 中的資料,可為數值、文字或公式。

[criteria_range2, criteria2](選填):額外的條件範圍與條件組,可設定多組條件來篩選 max_range,只有同時符合所有條件的資料才會被計算最大值。

範例 1(單一條件):找出指定品項的最高單價

在報價紀錄表中,若要查詢「筆記本」的最高單價,可輸入:MAXIFS(「單價」欄位, 「品項」欄位, "筆記本")。

範例 2(多重條件):依指定類別與供應商回傳最高單價

若要找出類別為「文具」且供應商為「A 供應商」的最高單價,可輸入:MAXIFS(「單價」欄位, 「類別」欄位, "文具", 「供應商」, "A")。

系統會在同時符合兩項條件的資料中回傳最高值。

MINIFS 函數

MINIFS 函數可根據一個或多個條件,從指定範圍中找出符合條件的最小值。常用於找出最低售價、最小金額或最早日期等情境。
公式 語法
MINIFS MINIFS(min_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)

參數說明:

min_range(必填):要找出最小值的子表格欄位範圍。

criteria_range1(必填):第一個條件的範圍,用來篩選符合條件的資料。

criteria1(必填):第一個條件,用於篩選 criteria_range1 中的資料,可為數值、文字或公式。

[criteria_range2, criteria2](選填):額外的條件範圍與條件組,可設定多組條件來篩選 min_range,只有同時符合所有條件的資料才會被計算最小值。

範例 1(單一條件):找出指定品項的最低單價

在報價紀錄表中,若要查詢「筆記本」的最低單價,可輸入:MINIFS(「單價」欄位, 「品項」欄位, "筆記本")。

範例 2(多重條件):依指定類別與供應商回傳最低單價

若要找出類別為「文具」且供應商為「A 供應商」的最低單價,可輸入:MINIFS(「單價」欄位, 「類別」欄位, "文具", 「供應商」, "A")。

系統會在同時符合兩項條件的資料中回傳最低值。

多層條件的公式

如果是在你有多個條件的情況下,條件公式可以分層寫出。

範例:

IF(A1==1,'Bad',IF(A1==2,'Good',IF(A1==3,'Excellent','No Valid Score')))

上面這個公式代表:

如果 A1 的值為 1,回傳結果「Bad」。

如果 A1 的值為 2,回傳結果「Good」。

如果 A1 的值為 3,回傳結果「Excellent」。

如果 A1 的值不符合上述情況,則回傳「No Valid Score」。

範例:

 
IF( 
AND(A1.RAW=='YES',A2.RAW=='Jimmy'), 
C3*C7, 
IF( 
AND(A1.RAW=='YES',A2.RAW=='John'), 
C3*C8, 
IF( 
AND(A1.RAW=='YES',A2.RAW=='Jane'), 
C3*C9, 
C3*C10 
) 
) 
) 

上面這個公式代表:

如果 A1 的值為「YES」,且 A2 的值為「Jimmy」,回傳結果為 C3*C7。

如果 A1 的值為「YES」,且 A2 的值為「John」,回傳結果為 C3*C8。

如果 A1 的值為「YES」,且 A2 的值為「Jane」,回傳結果為 C3*C9。

如果 A1 的值不符合上述情況,則回傳結果為 C3*C10。

IFS 函數

除了上述的巢狀公式外,你也可以使用 IFS() 來撰寫多個條件的條件公式

公式 語法
IFS() IFS(value=condition1,value_if_true1,value=condition2,value_if_true2,...,

true,default value)

參數說明:

value=condition1(必填):此為第一個檢查條件。

value_if_true1(必填):此為當符合第一個檢查條件時回傳的值。

value=condition2(必填):是必要的,此為第二個檢查條件。

value_if_true2(必填):此為當符合第二個檢查條件時回傳的值。

*檢查條件最少為兩組,可依實際需求增加數量。

true(選填):若你需要設定預設值,則必須輸入此參數,若無此需求則可省略。

default value(選填):此為若沒有任何符合的檢查條件時,系統必須回傳的預設值。

範例

 
IFS(A1=1,"Bad",A1=2,"Good",A1=3,"Excellent",true,"No Valid Score") 

上面這個公式同樣代表:

如果 A1 的值為 1,回傳結果為「Bad」。

如果 A1 的值為 2,回傳結果為「Good」。

如果 A1 的值為 3,回傳結果為「Excellent」。

如果 A1 的值不符合上述情況,則回傳結果為「No Valid Score」。

其他公式說明與應用

LOOKUP 函數

LOOKUP 函數可根據指定的數值範圍或條件,自動回傳對應的結果。

公式 語法
LOOKUP LOOKUP(value,[lookup_list],[result_list])

value(必填):要搜尋的欄位值,系統會在 lookup_list 中尋找與此值相符或接近的項目。

[lookup_list](必填):是一個陣列,如[0,100,500],LOOKUP 功能在這清單內搜尋 value。

result_list(選填):用於指定在找到符合條件的值後,系統應回傳的結果。其項目數量與 lookup_list 相同,例如:["Small", "Medium", "Large"]。

若省略此參數,LOOKUP 函數將回傳 lookup_list 中的值。若未找到完全相符的值,系統會回傳 lookup_list 中小於或等於指定值的最大值所對應的結果。若指定值小於所有 lookup_list 中的值,函數將回傳空白。

範例 1:LOOKUP(A1, [0,45,65], ['Small','Medium','Large'])

當 A1 的值介於 0 至 44 時,回傳 Small;

介於 45 至 64 時,回傳 Medium;

大於或等於 65 時,回傳 Large。

範例 2(多欄位結果):LOOKUP(A1, [0,45,65], [A3+A4, B5, B6])

當 A1 的值介於 0 至 44 時,回傳 A3+A4;

介於 45 至 64 時,回傳 B5;

大於或等於 65 時,回傳 B6。

AND 函數

當條件全部滿足時傳回 TRUE,在一個或多個條件不滿足時傳回 FALSE。

公式 語法
AND AND(logical1,[logical2],...)

參數說明:

logical1(必填):第一項需要判斷回傳值為 TRUE 或 FALSE 的條件。

logical2(選填):其他條件在被判斷時,也會影響回傳值為 TRUE 或 FALSE。

OR 函數

當任一個條件滿足時傳回 TRUE,在全部條件都不滿足時傳回 FALSE。

公式 語法
OR OR(logical1,[logical2],...)

參數說明:

logical1(必填):第一項需要判斷回傳值為 TRUE 或 FALSE 的條件。

logical2(選填):其他條件在被判斷時,只要其中任一條件為 TRUE,整體回傳值即為 TRUE。

NOT 函數

當條件不滿足時傳回 TRUE,條件滿足時則傳回 FALSE。

公式 語法
NOT NOT(logical)

範例:

NOT(A2>10),如果 A2 欄位值小於或等於 10 的時候,系統會回傳「true」。欄位值大於 10 的時候,系統則會回傳「false」。

UPDATEIF 函數

讓該欄位在條件不成立的情況下保有原本的欄位值,並只在條件成立的情況下更新欄位值。

公式 語法
UPDATEIF UPDATEIF(condition,value_if_true)

參數說明:

condition(必填):用來決定欄位是否要被更新的條件。當條件成立時,欄位會被更新;條件不成立時,欄位保持原本的值。

value_if_true(必填):當條件成立時,要更新成的值,可以是固定數值、文字或參照其他欄位的值。

範例:

UPDATEIF(A2==10,10),如果A2等於10的時候,套有此公式的欄位值會被更新成10。 如果 A2 的欄位值不是 10 的任何情況下,,套有此公式的欄位會保有之前所儲存的值,並不會改變。

UPDATEIF(A2=='同住家地址',A1),如果 A2 的欄位值為「同住家地址」的話,此欄位(送貨地址)的值則會是 A1 的值(住家地址),其他情況下,該欄位值會維持原本的欄位值,例如空值或之前儲存的值。

提供回饋給 Ragic

請告訴我們您的意見:(多選, 必填)

請針對上方勾選項目提供詳細說明:

截圖能夠讓我們更清楚了解您的建議:

感謝您的寶貴意見!

馬上註冊
免費試用 Ragic!

用 Google 帳號註冊

立即科技 Ragic, Inc.
02-7728-8692
info@ragic.com
台北市中正區南昌路二段81號9樓
使用者條款 | 隱私權政策