當前位置: 妍妍網 > 辦公

會用IF函式{1,0}結構嗎?Excel高手必會!

2024-03-01辦公

編按:

詳細講解IF函式的{1,0}結構的原理和用法。會靈活使用該結構的都是高手。

凡是做過反向尋找的人,對IF函式的{1,0}(或者{1;0}結構都不陌生:它可以交換兩列(或兩行)數據。

(圖中效果, Excel 2021版本以下的,可以先選中D2:E9,然後輸入公式,最後按Ctrl+Shift+Enter三鍵結束。)

但是,它的原理是什麽?它只能寫成{1,0}嗎?它有哪些用法?

今天我們來說說。

1. 原理


用到兩個原理,IF函式自身的取值邏輯和陣列運算邏輯。

1)IF函式取值邏輯

=IF(條件,條件為真的結果,條件為假的結果)

條件為真,邏輯值就是TRUE,常用1表示;條件為假,邏輯值就是FALSE,常用0表示。

取值邏輯:當條件為真,在第二參數中取值;當條件為假,在第三參數中取值。

譬如:公式=IF(1,5,10),結果是5;公式=IF(0,5,10),結果是10。

2)陣列邏輯

(1)陣列運算要求行列一一對應。
如果兩個陣列行列不對應,會自動擴充套件,無法自動擴充套件的,缺失的部份將得到錯誤值。

(2)陣列運算的結果也是一個陣列。
其行數等於參與運算的陣列的最大行,其列數等於參與運算的陣列的最大列。

譬如,有如下兩個陣列。陣列1:B17:C20,陣列2:D17:E20,都是2列4行。

用陣列2-陣列1,結果也是2列4行的陣列。用陣列2的第1列減去陣列1的第1列;陣列2的第2列減去陣列1的第2列;彼此是對應相減的,不會出現第2列減去第1列。行也是如此。這就是陣列按行列一一對應運算。

如果運算的陣列無法一一對應,單列單行陣列可以自動按需進行復制擴充套件。

譬如,下方陣列3只有單列,當用陣列4減去它,其結果與陣列6減去陣列5的一樣,說明陣列3自動復制了一列出來。

非單列單行陣列無法自動復制擴充套件,缺少對應的行列運算時會出現錯誤值。

譬如下方陣列8有4行3列,而陣列7只有4行2列,它們的結果應是4行3列的陣列。因為陣列7無法自動復制擴充套件,所以前方兩列相減結果正常,第3列則得到錯誤值。

3){1,0}結構交換數據的本質

用公式=IF({1,0},C3:C6,B3:B6)交換下方陣列A和B。

條件{1,0}是一行兩列的陣列;陣列A和B都是4行1列的陣列。它們的結果應該是4行兩列。

具體的執行過程如下:

(1)首先3個陣列都按陣列規則自動擴充套件,都變成4行2列。

(2)然後按規則取值

條件陣列第1列第1行是1,條件為真,所以在TRUE結果陣列B中取第1列第1行的值;

條件陣列第2列第1行是0,條件為假,所以在FALSE結果陣列A中取第2列第1行的值。

最終結果:


2. 結構變化


變化1:交換1和0的位置,如IF({0,1}……)

相比{1,0},{0,1}的結果第一列是FALSE中的第一列。

變化2: 可以是多個1或者0的數位,如IF({1,1,0}……)

條件中的第1個1,位於第1列,條件為真,所以在TRUE結果中找第1列;

條件中的第2個1,位於第2列,條件為真,所以在TRUE結果中找第2列;

條件中的0,位於第3列,條件為假,所以在FALSE結果中找第3列。

變化3: 可以是任何數位,如IF({-1,2,0}……)

在Excel中,數位0表示FALSE,其他數位都能代表TRUE。

變化4:可以是公式結果,如IF(MOD(COLUMN(A1:C1),3)……)

把巢狀的公式結果作為條件。譬如MOD(COLUMN(A1:C1),3),實際等於{1,2,0}。


3. IF{1,0}結構經典運用


1)反向尋找

如圖。

2)多條件尋找

譬如下方按部門與商品名稱、日期尋找銷售數量。

公式:

=MAX(IF(($A$2:$A$10=$A14)*($B$2:$B$10=$B14),INDEX($C$2:$H$10,,MATCH(C$13,$C$1:$H$1,0))))

該公式比用VLOOKUP多條件尋找簡潔。

3)經典一對多

求銷售一部銷售的所有產品。

粉絲福利:免費課程,掃碼領取學習

點選領取:全套Excel技巧視訊+200套樣版