教程 | Excel性能優(yōu)化方法(三)

01

使用 INDEX 和 MATCH 或 OFFSET 而不是 VLOOKUP

雖然 VLOOKUP 比 MATCH 和 INDEX仿滔,或 OFFSET 組合的速度稍快(大約快 5%)杨幼、更簡單嫌拣,并使用更少的內(nèi)存,但 MATCH 和 INDEX 所提供的額外靈活性通尺蠛恚可以顯著節(jié)省時間捣卤。例如,可以將完全 MATCH 的結(jié)果存儲在單元格中八孝,并在幾個 INDEX 語句中重用董朝。INDEX 函數(shù)是快速運行的不變函數(shù),它可以加快重新計算的速度干跛。 OFFSET 函數(shù)的運行速度也很快子姜;但它是可變函數(shù),因此有時會顯著增加處理計算鏈所需的時間楼入「绮叮可輕松將 VLOOKUP 轉(zhuǎn)換為 INDEX 和 MATCH。以下兩個語句返回相同結(jié)果:

VLOOKUP(A1,?Data!$A$2:$F$1000,3,False)INDEX(Data!$A$2:$F$1000,MATCH(A1,$A$1:$A$1000,0),3)

02

SORT的應用

由于完全匹配查找可能很慢嘉熊,因此可以考慮使用以下選項來提高性能:

  • 使用一個工作表遥赚。使查找和數(shù)據(jù)位于同一工作表中運行速度更快。

  • 如果可以记舆,先對數(shù)據(jù)執(zhí)行 SORT(SORT 較快),然后使用近似匹配呼巴。

  • 當必須使用完全匹配查找時泽腮,請將要掃描的單元格范圍限制到最小區(qū)域。使用表和結(jié)構(gòu)化引用或動態(tài)區(qū)域名稱衣赶,而不是引用大量的行或列诊赊。有時可以預先計算查找的范圍下限和范圍上限。

03

對缺少值的排序數(shù)據(jù)使用兩個查找

對于在數(shù)行內(nèi)執(zhí)行的查找府瞄,兩個近似匹配顯著快于一個完全匹配碧磅。 (分界點是大約 10-20 行。)

如果可以對數(shù)據(jù)排序遵馆,但由于不能確定要查找的值是否位于查找范圍內(nèi)而仍無法使用近似匹配鲸郊,則可以使用以下公式:

IF(VLOOKUP(lookup_val?,lookup_array,1,True)=lookup_val,?VLOOKUP(lookup_val,?lookup_array,?column,?True),?"notexist")

公式第一部分的運作方式是對查找列本身執(zhí)行近似查找

VLOOKUP(lookup_val?,lookup_array,1,True)

可以使用以下公式檢查從查找列得到的結(jié)果是否與查找值相同(在這種情況下,你有一個完全匹配項):

IF(VLOOKUP(lookup_val?,lookup_array,1,True)=lookup_val,

如果此公式返回“True”货邓,則找到了完全匹配項秆撮,所以可以再次執(zhí)行近似查找,但這次從列中返回所需的結(jié)果换况。

VLOOKUP(lookup_val,?lookup_array,?column,?True)

如果從查找列得到的結(jié)果與查找值不匹配职辨,則表示它是缺失值盗蟆,公式將返回“notexist”。

注意舒裤,如果查找的值小于列表中的最小值喳资,則會收到錯誤√诠可以使用 IFERROR 來處理此錯誤仆邓,或者向列表添加一個小的測試值。

04

對于缺少值的未排序數(shù)據(jù)台腥,使用 IFERROR 函數(shù)

如果必須對未排序數(shù)據(jù)使用完全匹配查找宏赘,但是不能確定查找值是否存在,通常必須處理找不到匹配項時返回的 #N/A黎侈。從 Excel 2007 開始察署,可以使用 IFERROR 函數(shù),該函數(shù)既快又簡單峻汉。

IF?IFERROR(VLOOKUP(lookupval,?table,?2?FALSE),0)

在早期版本中贴汪,一個簡單但較慢的方法是使用包含兩個查找的 IF 函數(shù)。

IF(ISNA(VLOOKUP(lookupval,table,2,FALSE)),0,VLOOKUP(lookupval,table,2,FALSE))

如果使用完全 MATCH 一次休吠,將結(jié)果存儲在單元格中扳埂,然后在執(zhí)行 INDEX 之前測試結(jié)果,則可以避免雙重完全查找瘤礁。

In?A1?=MATCH(lookupvalue,lookuparray,0)In?B1?=IF(ISNA(A1),0,INDEX(tablearray,A1,column))

如果無法使用兩個單元格阳懂,則使用 COUNTIF。它通常比完全匹配查找速度快柜思。

??IF?(COUNTIF(lookuparray,lookupvalue)=0,?0,?VLOOKUP(lookupval,?table,?2?FALSE))

05

使用 MATCH 和 INDEX 對多個列進行完全匹配查找

通逞业鳎可以多次重復使用存儲的完全 MATCH。例如赡盘,如果要對多個結(jié)果列執(zhí)行完全查找号枕,則可以使用一個 MATCH 和多個 INDEX 語句(而不是多個 VLOOKUP 語句)來節(jié)省時間。為 MATCH 添加一個額外的列來存儲結(jié)果 (stored_row)陨享,并對每個結(jié)果列使用以下語句:

INDEX(Lookup_Range,stored_row,column_number)

或者葱淳,可以在數(shù)組公式中使用 VLOOKUP。(必須使用 Ctrl+-Shift+Enter 輸入數(shù)組公式抛姑。Excel 將添加 { and }赞厕,以顯示這是一個數(shù)組公式)。

{VLOOKUP(lookupvalue,{4,2},FALSE)}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末定硝,一起剝皮案震驚了整個濱河市坑傅,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌喷斋,老刑警劉巖唁毒,帶你破解...
    沈念sama閱讀 219,110評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蒜茴,死亡現(xiàn)場離奇詭異,居然都是意外死亡浆西,警方通過查閱死者的電腦和手機粉私,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來近零,“玉大人诺核,你說我怎么就攤上這事【眯牛” “怎么了窖杀?”我有些...
    開封第一講書人閱讀 165,474評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長裙士。 經(jīng)常有香客問我入客,道長,這世上最難降的妖魔是什么腿椎? 我笑而不...
    開封第一講書人閱讀 58,881評論 1 295
  • 正文 為了忘掉前任桌硫,我火速辦了婚禮,結(jié)果婚禮上啃炸,老公的妹妹穿的比我還像新娘铆隘。我一直安慰自己,他們只是感情好南用,可當我...
    茶點故事閱讀 67,902評論 6 392
  • 文/花漫 我一把揭開白布膀钠。 她就那樣靜靜地躺著,像睡著了一般裹虫。 火紅的嫁衣襯著肌膚如雪肿嘲。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,698評論 1 305
  • 那天恒界,我揣著相機與錄音睦刃,去河邊找鬼砚嘴。 笑死十酣,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的际长。 我是一名探鬼主播耸采,決...
    沈念sama閱讀 40,418評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼工育!你這毒婦竟也來了虾宇?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,332評論 0 276
  • 序言:老撾萬榮一對情侶失蹤如绸,失蹤者是張志新(化名)和其女友劉穎嘱朽,沒想到半個月后旭贬,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,796評論 1 316
  • 正文 獨居荒郊野嶺守林人離奇死亡搪泳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,968評論 3 337
  • 正文 我和宋清朗相戀三年稀轨,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片岸军。...
    茶點故事閱讀 40,110評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡奋刽,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出艰赞,到底是詐尸還是另有隱情佣谐,我是刑警寧澤,帶...
    沈念sama閱讀 35,792評論 5 346
  • 正文 年R本政府宣布方妖,位于F島的核電站狭魂,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏吁断。R本人自食惡果不足惜趁蕊,卻給世界環(huán)境...
    茶點故事閱讀 41,455評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望仔役。 院中可真熱鬧掷伙,春花似錦、人聲如沸又兵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,003評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽沛厨。三九已至宙地,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間逆皮,已是汗流浹背宅粥。 一陣腳步聲響...
    開封第一講書人閱讀 33,130評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留电谣,地道東北人秽梅。 一個月前我還...
    沈念sama閱讀 48,348評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像剿牺,于是被迫代替她去往敵國和親企垦。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,047評論 2 355

推薦閱讀更多精彩內(nèi)容