會視運算式的評估而定,傳回兩個部分的其中一個部分。
你可以在任何地方使用 表達 式。 你用 IIf 來判斷另一個表達式是真還是假。 若表達式為真, IIf 回傳一個值;若為假, IIf 會返回另一個。 你指定了 IIf 回傳的值。
語法
我 ( expr 、 truepart 、 falsepart )
IIf 函數語法具有以下參數:
|
引數 |
描述 |
|---|---|
|
expr |
必要。 你想評估的表情。 |
|
真部 |
必要。 如果 expr 為 真,則回傳值或表達式。 |
|
falsepart(假部分) |
必要。 如果 expr 為 False,則回傳值或表達式。 |
註解
我總是 同時評估 truepart 和 falsepart,儘管它只回傳其中一個。 因此,你應該注意不良副作用。 例如,若評估 falsepart 導致除以零誤差,即使 expr 為 真,仍發生錯誤。
範例
在表單或報告中使用 IIf 假設你有一個 Customers 資料表,裡面有一個名為 CountryRegion 的欄位。 在表格中,你要標明該聯絡人的第一語言是否為義大利語。 你可以新增一個控制項,並在其控制源屬性中使用 IIf,例如:
=IIf ([國家區域]=「義大利」、「義大利」、「其他語言」)
當你在表單檢視中打開表單時,當 CountryRegion 的值是義大利時,控制項會顯示「義大利語」,而當 CountryRegion 是其他值時,則顯示「某種其他語言」。
在複雜表達式中使用 IIf 你可以將任何表達式作為 IIf 陳述的任意部分。 你也可以「巢狀」 IIf 表達式,讓你評估一系列相依式。 為了繼續前述範例,你可能想測試多個不同的 CountryRegion 值,然後根據存在的值顯示相應的語言:
=IIf ([CountryRegion]=「義大利」、「義大利語」、IIf ([CountryRegion]=「法國」、「法國」、IIf ([CountryRegion]=「德國」、「德國」、「其他語言」) ) )
文本「Some other language」是最內層 IIf 函數的假部分參數。 由於每個巢狀的 IIf 函數都是包含它的 IIf 函數的 falsepart 參數,因此只有當所有 IIf 函數的所有 expr 參數都值為 False 時,文字「Some other language」才會被回傳。
再舉一個例子,假設你在圖書館工作。 圖書館資料庫有一個名為「借出」的表格,裡面有一個名為「到期日」的欄位,記錄某本書的歸還日期。 你可以透過控制項控制來源屬性中的 IIf 函式,建立一個表單,顯示已借出項目的狀態,例如:
=IIf ([截止日期]<日期 () ,「逾期」,IIf ([截止日期]=日期 () ,「今日截止」、「尚未到期」) )
當你在表單檢視中開啟表單時,控制項顯示「逾期」若截止日期低於當前日期;若值等於當前日期,則顯示「今日截止」,否則顯示「尚未到期」。
附註: 若要在 IIf 函數的 expr 參數中使用「And」或「Or」等邏輯運算子,必須在 Eval 函數中包含邏輯表達式。 請參考以下範例表格。
在查詢中使用 IIf
IIf 函數常用於查詢中建立計算欄位。 語法相同,不同之處在於查詢時,表達式前必須加上欄位別名和冒號 (:) ,而非等號 (=) 。 要使用上述範例,你可以在查詢設計網格的 欄位 欄位輸入以下內容:
語言:IIf ([CountryRegion]=「義大利」、「義大利」、「其他語言」)
此時,「Language:」即為欄位別名。
欲了解更多關於建立查詢與計算欄位的資訊,請參閱文章「 建立一個簡單選擇查詢」。
在 VBA 程式碼中使用 IIf
附註: 以下範例展示了此函數在 Visual Basic for Applications (VBA) 模組中的應用。 如需使用 VBA 的詳細資訊,請在 [搜尋] 旁的下拉式清單中選取 [開發人員參考],並在 [搜尋] 方塊中輸入一個或多個字詞。
此範例使用 IIf 函數來評估 CheckIt 程序中的 TestMe 參數,若金額大於 1000,則回傳「Large」字;否則,則回傳「Small」這個詞。
Function CheckIt (TestMe As Integer)
CheckIt = IIf(TestMe > 1000, "Large", "Small")
End Function
更多例子
-
表達式: =IIf ([機場代碼]=“ORD”,“芝加哥”,IIf ([機場代碼]=“ATL”,“Atlanta”,IIf ([機場代碼]=“SEA”,“Seattle”,“其他”) ) ) 結果: 若[機場代碼]為「ORD」,則回傳「芝加哥」。 否則,如果[機場代碼]是「ATL」,則回程為「Atlanta」。 否則,若[機場代碼]為「SEA」,則返回「Seattle」。 否則,請回傳「其他」。
-
表達式: =IIf ([出貨日期]<日期 () ,「已出貨」,IIf ([出貨日期]=日期 () ,「今日出貨中」,「未出貨」) ) 結果: 若 [ShipDate] 早於今日日期,請回覆「已出貨」。 否則,如果[ShipDate]等於今天的日期,請回傳「Shipping today」。 否則,請「未寄回」狀態。
-
表達式: =IIf ([PurchaseDate]<#1/1/2008#,「舊」,「新」) 結果: 若[購買日期]為2008年1月1日之前,請回報「舊」。 否則,請以「全新」方式退回。
-
表達式: = (評估 ([伏特] 介於 12 到 15 之間,[安培] 介於 0.25 到 0.3) ,「OK」、「未校正」) 結果: 若 [Volts] 介於 12 到 15 之間,[Amps] 介於 0.25 到 0.3 之間,則回傳「OK」。 否則,請回傳「校準未完成」。
-
表達式: = ( (「加拿大」、「美國」、「墨西哥」 ( ) ) 、北美洲」、「其他」) 評估結果: 若 [CountryRegion] 是「Canada」、「USA」或「Mexico」,則回傳「北美洲」。 否則,請回傳「其他」。
-
表達式: =IIf ([平均]>=90,“A”,IIf ([平均]>=80,“B”,IIf ([平均]>=70,“C”,IIf ([平均]>=60,“D”,“F”) ) ) ) 結果: 若[平均]為90或以上,則回傳「A」。 否則,若[平均]為80或以上,則返回「B」。 否則,若平均值達70或以上,則回傳「C」。 否則,若 [平均值] 為 60 或以上,則回傳「D」。 否則,請回傳「F」。
附註: 如果你使用 IIf 函數在查詢中建立計算欄位,請將等號 (=) 替換成欄位別名和冒號 (:) 。 例如, 狀態:IIf ([出貨日期]<日期 () ,「已出貨」,IIf ([出貨日期]=日期 () ,「今日出貨中」、「未出貨」) )