也許很多人對VLOOKUP函數(shù)中套用IF({1,0},…)不理解。本文為你剖析IF函數(shù)數(shù)組變換的原理。如圖: X 一、選擇區(qū)域G1:H4,輸入以下數(shù)組公式,可實現(xiàn)A、B列位置互換: {=IF({1,0},B1:B4,A1:A4)} 或 {=IF({0,1},A1:A4,B1:B4)} 公式返回{'B1','A1';'B2','A2';'B3','A3';'B4','A4'}。 怎么理解這個數(shù)組公式呢? 要弄懂這個數(shù)組公式,需要先掌握數(shù)組公式的基礎(chǔ)知識——數(shù)組運(yùn)算和數(shù)組擴(kuò)展。請參閱以下兩篇文章: 數(shù)組運(yùn)算: http://blog.sina.cn/dpool/blog/s/blog_14e89401f0102wc4n.html?vt=4數(shù)組擴(kuò)展: 于是我們可以確定:這個數(shù)組公式需要重復(fù)計算8次,并返回一個四行兩列的數(shù)組。 第一次計算分別取三個參數(shù)的第一個元素,組成普通公式= IF(1,'B1','A1'),根據(jù)數(shù)值類型自動轉(zhuǎn)換規(guī)律,1被轉(zhuǎn)換為邏輯值TRUE,所以計算結(jié)果為'B1',該結(jié)果為返回的數(shù)組中第一行第一列的值; 第二次計算分別取三個參數(shù)的第二個元素,組成普通公式=IF(0,'B1','A1'),根據(jù)數(shù)值類型自動轉(zhuǎn)換規(guī)律,0被轉(zhuǎn)換為邏輯值FALSE,所以計算結(jié)果為'A1',該結(jié)果為返回的數(shù)組中第一行第二列的值; 第三次計算分別取三個參數(shù)的第三個元素,組成普通公式=IF(1,'B2','A2'),計算結(jié)果為'B2',該結(jié)果為返回的數(shù)組中第二行第一列的值; 如此類推。數(shù)組公式的結(jié)果如圖中G1:H4所示。 二、選擇區(qū)域H1:J4,輸入以下數(shù)組公式,可將第二個參數(shù)中的某列用第三個參數(shù)取代: {=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'} 三、選擇區(qū)域G1:H2,輸入以下數(shù)組公式,可實現(xiàn)交錯替換列: {=IF({0,1;1,0},A1:A2,B1:B2)} 公式返回{'B1','A1';'A2','B2'} 由于在同一維度上因大小不同而進(jìn)行的擴(kuò)展,將以#N/A值填充,如果要生成四行,需要寫成: {=IF({0,1;1,0;0,1;1,0},A1:A4,B1:B4)} 如果行數(shù)多,第一個參數(shù)繼續(xù)使用數(shù)組常量的話,就需要輸入相同數(shù)量的行,顯然這樣做是不可能的。需要把數(shù)組常量改為隱式數(shù)組,我們可以改用以下數(shù)組公式: {=IF(MOD(ROW(A1:A4),2)-{1,0},A1:A4,B1:B4)}
|