有同學提出來這樣一個數據填充問題。要求將A列名稱按照B列個數實現F列效果的填充。如下圖所示:
這樣的一種數據重復填充可以用Vlookup函數的模糊查找功能來實現,我們一起來了解一下,你會發現原來函數還可以這樣用。
【正文】
一 計算累計個數和在C列添加輔助列“累計個數”,在C2單元格中輸入公式:=SUM($B$2:B2)。計算結果如下:
通過累計計算可以得知:最終重復填充后應該總共有13行數據。
二 填充序號從第一步中我們已經得知總共需要填充13行數據,那么在E列增加“序號”字段,并填充1-13的序列。填充序列方法有很多:
平時我們得到1-13的序列可能是采取光標放置1單元格右下角往下拖的方式進行填充,若序列較短,可以用這種方式。但在工作中如果遇到比較多的數據,比如幾十、幾百、甚至幾千,那用這種方法就太耗時耗力了。所以我們用序列的方式進行填充。
在E2單元格輸入數字1,光標選中E2單元格,找到【開始】選項卡——“填充”——“系列”命令。在“序列”對話框中設置以下內容,即可快速得到序列。
1、 位置的修改:序列產生在“列”。
2、 序列類型:等差序列。
3、 步長值:1
4、 終點值:輸入序列終止值,本例為13。
三 思路分析填充好序列后,我們可以分析得到以下列表:以北京為例:序號為2,3,4(序號范圍為:2<=序號<5)時,應填充為北京。范圍臨界點是前閉后開。而Vlookup的模糊查詢可以實現范圍查找,并且是前閉后開的條件。
四 創建數據源手動創建數據源,在K2單元格中輸入0,K3單元格輸入公式:=C2+1,C2為累計個數。公式往下復制,得到如下數據源:
五 Vlookup模糊查找實現數據填充。創建好數據源后,就可以利用Vlookup函數模糊查找實現數據填充了,在G2單元格中輸入公式:=VLOOKUP(E2,$K$1:$L$8,2,1)。如下圖所示:
公式分析:
第一個參數:E2,查找對象,即通過E2單元格中的序號查找對應的名稱,所以E2為查找依據;
第二個參數:$K$1:$L$8,數據源,由于公式往下復制,數據源不發生變化,因此使用絕對引用;
第三個參數:2,匹配序列,即要查找的“名稱”位于數據源中的第2列。
第四個參數:1,查詢類型為模糊查找。若為0,則為精確查找。
模糊查找與精確查找的區別:以以下數據源為例。
精確查找:參數為0,則在以上數據源中,可以查詢到的結果只有3個:序號0對應為上海,序號2對應為北京,序號5對應為天津。若查找序號4,則查詢不到結果。
模糊查找:參數為1,則在以上數據源中,查詢結果為:若0<=序號<2(序號為0,1),均可匹配到名稱上海;若2<=序號<5(序號為2,3,4),均可匹配到名稱北京;若序號>=5(序號為5,6,7…)均可匹配到名稱天津。
注意點:模糊查詢要求數據源第一列中的值必須以升序排序。