立題簡介:
內容:使用excel下的"Vlookup"或“match+index”函數實現逆向查找(從右至左查找);
來源:實際得出;
作用:使用excel下的"Vlookup"及“match+index”函數實現逆向查找(從右至左查找);
仿真環境:excel 2013;
日期:2020-04-19;
=====================分割線========================
立題詳解:
本次討論使用excel的"Vlookup"或“match+index”函數實現“逆向查找”(從右至左查找);
對設計而言,對理工科而言,大部分情況下,對office的excel應用並不高,大部分是集中於word或ppt;但在工作中,很多情況下,對excel的使用卻逐漸增加。個人在處理BOM數據時,經常涉及到數據的核對、檢索等等操作,在規範化的BOM中,需要將自己設計的sch對應BOM,與系統BOM對照起來,核心為“SN號”及“物料描述”。
但實際中,每個人的BOM會有差異,因此並不是每個BOM都能直接使用“正向查找”(從左至右),雖然可以使用重構BOM或數據表來處理,但這樣會“損壞原始數據”或“引入新數據”,同時會引入更多的“中間操作”。因此,查詢了資料後,瞭解了“逆向查找”(從右至左查找),感謝網友的無私分享。
-----------------------------------------
1、使用"Vlookup"
函數"Vlookup"只能實現“正向查找”(從左至右),不能直接實現“逆向查找”(從右至左查找);需要實現“逆向查找”(從右至左查找),最簡潔的方法是藉助“if函數”來進行,步驟如下:
第一步:整合,如下圖所示:
公式為:"=VLOOKUP(K2,IF({1,0},C:C,B:B),2,0)",要點:
i)、if函數:其實現了“數據換列”;if函數中使用了"大括號"("{}"),並配合"C:C"與"B:B",此2列確定了查找與所需結果列所在的位置;即:“查找範圍”僅僅侷限於“數據源”與“目標列”之間;
ii)、“查找列”:此處只能為“1”或“2”,寫為“2”,是因為“IF({1,0},C:C,B:B)”限定了數據區域;
截圖如下:
PS:此種方法,函數書寫簡潔,但要完全理解,需要花費一些時間;
2、使用match+index
個人而言,偏愛“match+index”,此方法簡單、高效,思維書寫的承繼關係更加直觀;
核心思路:先使用“match”獲取“目標所在行號”,再使用“index”獲取“目標值”;
第一步:獲取目標值所在行號:
公式為:"=MATCH(H2,表1_34[外部代號],0)"
要點1:第3個參數推薦寫"0"(數字0),應該表示“精確查找”;
要點2:通過此步,可獲得“目標所在的行號”,直接複製此公式備用;
截圖如下:
第二步:獲取目標值:
公式為:"=INDEX(表1_34[SN號],MATCH(H2,表1_34[外部代號],0),0)"
要點1:第2個參數為第一步中獲取行號的公式,之前已經複製;
要點2:第3個參數推薦寫"0"(數字0),應該表示“精確查找”;
截圖如下: