1. 概述
在進行資料分析時,使用者經常會使用到 IF 判斷條件,來對已有的資料進行资料清理和處理。
2. 處理特殊值
2.1 範例一:欄位中值為空
使用者在進行資料處理時,可能會遇到欄位有空的情況,此時如果在此基礎上需要對非 0 資料進行公式計算或者處理,就需要只處理非空的資料即可,可使用 IF 函式進行判斷。
範例資料:網際網絡_存取統計表.xlsx
例如「網際網絡_存取統計表」中的「統計日期」有為空的資料,需要將非空的「統計日期」資料處理為當前時間後十天,由於空值會被處理成 1970 年,因此需要在公式外再巢一個 IF 和 ISNULL 組合的函式,確定處理後的結果正確性。
建立自助資料集,建立「新增列」並使用公式IF(ISNULL(統計日期)=1,null,DATEDELTA(統計日期,10)),如下圖所示:
注:DATEDELTA 函式可以傳回指定日期後的具體日期。
2.2 範例二:保證除法結果的正確性
若出現需要對欄位進行除法計算,被除數或者除數為 0 ,此時也可以使用 IF 函式。
詳情參見:無窮/負數/空值顯示為0 。
2. 進行條件指派
使用者需要需要根據某些條件對資料進行分類指派處理,此時 IF 函式是一個比較好的選擇。
通常會 IF 函式會與 AND、OR、FIND等巢使用。
2.1 範例一:多個 IF 巢使用
使用內建資料集「地區資料分析」。
如果「客戶名稱」這個列中包含「有限公司」欄位的就等於「有限公司」,如果包含「大學」欄位的就等於「教育行業」,否則就為「其他」。
建立自助資料集,建立新增列並輸入公式:IF(FIND("有限公司",客戶名稱)!=0,"有限公司",IF(FIND("大學",客戶名稱)!=0,"教育行業","其他")),如下圖所示:
注:欄位需要從公式框左側選擇,不能手動輸入。
公式說明:
公式 | 說明 |
---|---|
FIND("有限公司",客戶名稱)!=0 | 在「客戶名稱」欄位中尋找包含「有限公司」內容,則匯出為真,否則為 FALSE |
IF(FIND("有限公司",客戶名稱)!=0,"有限公司",IF(FIND("大學",客戶名稱)!=0,"教育行業","其他")) | 如果「客戶名稱」這個列中包含「有限公司」欄位的就等於「有限公司」,如果包含「大學」欄位的就等於「教育行業」,否則就為「其他」 |
2.2 範例二:與邏輯函式一起使用
仍然使用內建資料集,如果只要滿足「合同金額>500000」、「省份屬於浙江省」中的一個,即指派為「指定合同」,否則為其他。
輸入公式:IF(OR(合同金額>500000,FIND("浙江省",省份)!=0),"指定合同","其他"),如下圖所示:
公式 | 說明 |
---|---|
FIND("浙江省",省份)!=0 | 若省份為浙江省,傳回 TRUE,否則傳回 FALSE |
OR(合同金額>500000,FIND("浙江省",省份)!=0) | 滿足兩個條件中的一個則為真 |
也可將 OR 更換成 ||:IF(合同金額>500000||FIND("浙江省",省份)!=0,"指定合同","其他")