Just My Life & My Work

[EXCEL] IF 語法 (IF Syntax)

C語言程式已經習慣使用if和else,是非常基本的語法。最近處理數據需要用到Excel類似的邏輯處理,除了相對參照和絕對參照之外,如果有if和else邏輯指令,那麼處理數據會更加方便!

首先來看IF的語法

IF(logical_test,[value_if_true],[value_if_false])

第一個參數是邏輯判別式、第二個是若判別式為時所作的事情,第三個就是判別式為時所作的事情。

假如我想要有ELSE這樣子的指令,該怎麼做呢?可以直接在第二(假如判別式為)或第三(假若判別式為)個參數中再加入IF的語法

IF(logical_test,IF(logical_test,IF(logical_test,[value_if_true],[value_if_false]),[value_if_false]),[value_if_false])

可以看到在第一巢的判別式為true的情況下,我接下去IF~接著又在第二巢的判別式為true的情況下,我再接下去IF,也就是第三巢……

if else此圖的意義為逐一判斷B3、B4、……、B8,若皆為真,則輸出777。若第二或第三個參數沒有給任何指示,要記得加逗號(,),讓函式完整,而沒有指示,則預設輸出0。

IF(B8=21,777,),為真時輸出777,為假時輸出0。IF(B8=21,,),無論真假皆輸出0。

話說Excel的IF語法巢狀層級最多七層,超過會出現訊息「無法輸入指定的公式,因為它超過目前檔案格式所允許的巢狀層級數量。」而我所想判斷的格數有達九層!只好放棄最差結果的兩格……一定有辦法可以解決,只是目前還沒想到:P突然地~我想到可以用其它格子來繼續做運算,若到達第七層,則輸出指示表明已達巢狀第七層,其它格子就可以判斷此格為第七層,然後接下去繼續使用巢狀結構!哈~真聰明呢!

=IF(RANK(img59!$J$63,img59!$J$63:img59!$J$71,0)=B4,img59!$J$63,IF(RANK(img59!$J$70,img59!$J$63:img59!$J$71,0)=B4,img59!$J$70,IF(RANK(img59!$J$65,img59!$J$63:img59!$J$71,0)=B4,img59!$J$65,IF(RANK(img59!$J$66,img59!$J$63:img59!$J$71,0)=B4,img59!$J$66,IF(RANK(img59!$J$67,img59!$J$63:img59!$J$71,0)=B4,img59!$J$67,IF(RANK(img59!$J$68,img59!$J$63:img59!$J$71,0)=B4,img59!$J$68,IF(RANK(img59!$J$69,img59!$J$63:img59!$J$71,0)=B4,img59!$J$69,)))))))

這是我目前打過最長的指令,呵呵~看看就好(可能部落格上看不到尾巴XD)!它巢狀有七層喔~

參考:Excel IF 語法範例說明

隨意留個言吧:)~

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料

標籤雲