回覆列表
  • 1 # 木星上的程式設計師

    可以先做相反的判斷

    if !condition1

    do something || return;

    if !condition2

    do something || return;

    if !condition3

    do something || return;

    這樣可以有效避免if的巢狀

  • 2 # Excel自學成才

    舉一個簡單的例子,有一份學生的成績單,然後有一個成績劃分標準,我們需要把學生的等級求出來,如下所示:

    IF函式巢狀使用

    首先想到的可能就是用IF函式巢狀來求解了,首先我們要簡單的知道這個判斷的邏輯

    然後就可以開始寫公式了,從上至下一層一層來,首先第1層是:

    IF(B2<60,"不及格",第2層)

    第2層的公式是:IF(B2<70,"及格",第3層)

    把2層公式放在一塊就是:IF(B2<60,"不及格",IF(B2<70,"及格",第3層))

    ....

    以此類推,把每層的公式填寫進去,得到了IF函式的判斷公式

    =IF(B2<60,"不及格",IF(B2<70,"及格",IF(B2<80,"良好",IF(B2<90,"中等","優秀"))))

    得到了最終的結果:

    替代方法:VLOOKUP函式

    首先建議一個輔助列,它是每個級別滿足的最低條件,如下所示:

    然後我們只需要使用VLOOKUP函式的模糊查詢就可以得到最終的結果了,

    在C2中輸入一個公式:

    =VLOOKUP(B2,E:G,3,1)

    如果級數越多,這個方法優勢就更明顯,快快用起來吧~

  • 3 # 玩Office

    然是IFS函數了

    IFS函式

    IFS函式就是一個多條件判斷函式。

    語法非常簡單:

    IFS(判斷1,返回1,判斷2,返回2,判斷3,返回3,判斷4,返回4……)

    對比IF函式巢狀

    在沒有IFS函式之前,我們如果要對多條件進行判斷,那麼就需要利用IF函式進行多重巢狀。用過IF函式多重巢狀的同學都知道,如果巢狀4層以上,邏輯就開始變複雜,容易出錯,同時運算的效率也開始降低。

    案例:根據右側的條件,判斷並返回成績的等級。

    用IF函式巢狀是可以實現的,可以看到本例中用了三個IF函式進行巢狀得到結果。算不上多複雜,但是對於初學者來說,還是有點繞的。

    如果我們用IFS函式,那麼就直觀多了。

    在IFS運算過程中,從左到右進行條件判斷,一旦判斷為“true”,那即返回對應的結果,同時結束運算不再向後做判斷。

    一方面邏輯變得簡單,另一方面運算速度也得提高。

    對比LOOKUP函式

    用LOOKUP函式進行多條件判斷也是可以的。

    但是也有兩個問題:

    1. 對於初學者來將難度稍大;

    2. 資料量大的話,LOOKUP函式也嚴重佔用系統資源。

    不可否認,LOOKUP函式非常強大,比起VLOOKUP函式更靈活更富有彈性。

    在這個案例中,要應用LOOKUP函式,首先要製作右側的“等級表”,同時“分數”欄位的資料一定要升序排列(否則會返回不可控的結果)。

    對於使用函式熟練的同學來說,這個函式並不難。

    但是用過VLOOKUP函式或LOOKUP函式的同學都應該知道,這個函式的運算效率低。如果是幾百行資料還好,但是如果上到幾千行甚至更多資料的時候,運算速度就變得特別慢—這跟函式的運算機制有關。

    而IFS函式的邏輯簡單,運算步驟少,所以速度得到顯著提高。

    哪個Office版本有IFS函式?

    IFS函式是新增的函式,在Office2019和Office365中都已經可以應用這個函式。

    部分Office2016版本可能也可用,得動手試一試。

  • 中秋節和大豐收的關聯?
  • 寶寶惹你生氣時你會發火嗎?