[轉載]Excel公式教程 IF函數數組變換詳解

[轉載]Excel公式教程IF函數數組變換詳解 2016-03-20 21:30閱讀: 原文地址:Excel公式教程IF函數數組變換詳解 原文作者:ZhouFfett 也許很多人對VLOOKUP函數中套用IF({1,0},…)不理解。本文為你剖析IF函數數組變換的原理。如圖:

X一、選擇區域G1:H4,輸入以下數組公式,可實現A、B列位置互換:{=IF({1,0},B1:B4,A1:A4)} 或{=IF({0,1},A1:A4,B1:B4)}公式返回{"B1","A1";"B2","A2";"B3","A3";"B4","A4"}。怎麼理解這個數組公式呢?要弄懂這個數組公式,需要先掌握數組公式的基礎知識——數組運算和數組擴展。請參閱以下兩篇文章:數組運算:http://blog.sina.cn/dpool/blog/s/blog_14e89401f0102wc4n.html?vt=4數組擴展:http://blog.sina.cn/dpool/blog/s/blog_14e89401f0102wc5x.html?vt=4下面以第一個數組公式為例進行解釋。IF函數的第一個參數{1,0}是一個單行兩列的數組常量,有兩個元素;而第二、第三個參數都是四行單列的數組。進行數組擴展後,三個參數都變成四行兩列的數組,各有8個元素:第一個參數擴展後變成{1,0;1,0;1,0;1,0}第二個參數擴展後變成{"B1","B1";"B2","B2";"B3","B3";"B4","B4"}第三個參數擴展後變成{"A1","A1";"A2","A2";"A3","A3";"A4","A4"}於是我們可以確定:這個數組公式需要重複計算8次,並返回一個四行兩列的數組。第一次計算分別取三個參數的第一個元素,組成普通公式=

載入中...內容載入失敗,點擊此處重試載入全文 IF(1,"B1","A1"),根據數值類型自動轉換規律,1被轉換為邏輯值TRUE,所以計算結果為"B1",該結果為返回的數組中第一行第一列的值;第二次計算分別取三個參數的第二個元素,組成普通公式=IF(0,"B1","A1"),根據數值類型自動轉換規律,0被轉換為邏輯值FALSE,所以計算結果為"A1",該結果為返回的數組中第一行第二列的值;第三次計算分別取三個參數的第三個元素,組成普通公式=IF(1,"B2","A2"),計算結果為"B2",該結果為返回的數組中第二行第一列的值;如此類推。數組公式的結果如圖中G1:H4所示。二、選擇區域H1:J4,輸入以下數組公式,可將第二個參數中的某列用第三個參數取代:{=IF({0,1,1},A1:C4,E1:E4)}公式返回{"E1","B1","C1";"E2","B2","C2";"E3","B3","C3";"E4","B4","C4"}{=IF({1,0,1},A1:C4,E1:E4)}公式返回{"A1","E1","C1";"A2","E2","C2";"A3","E3","C3";"A4","E4","C4"}{=IF({1,1,0},A1:C4,E1:E4)}公式返回{"A1","B1","E1";"A2","B2","E2";"A3","B3","E3";"A4","B4","E4"}三、選擇區域G1:H2,輸入以下數組公式,可實現交錯替換列:{=IF({0,1;1,0},A1:A2,B1:B2)}公式返回{"B1","A1";"A2","B2"}由於在同一維度上因大小不同而進行的擴展,將以#N/A值填充,如果要生成四行,需要寫成:{=IF({0,1;1,0;0,1;1,0},A1:A4,B1:B4)}如果行數多,第一個參數繼續使用數組常量的話,就需要輸入相同數量的行,顯然這樣做是不可能的。需要把數組常量改為隱式數組,我們可以改用以下數組公式:{=IF(MOD(ROW(A1:A4),2)-{1,0},A1:A4,B1:B4)}

分享

  • 我的博客
  • 微博
  • 微信
  • 朋友圈
  • N同時轉發到微博 發送
    推薦閱讀:

    一起認識SUMIF函數
    Vlookup Text等6個excel函數合力算農曆(考慮閏月)
    職場乾糧系列——Excel辦公常用函數(一)
    遞歸函數(四):全函數與計算的可終止性
    你會用Sum函數嗎?

    TAG:公式 | 轉載 | 函數 | 教程 | Excel公式 | Excel | 數組 |