編按:大冬天里,經(jīng)常有排著長隊(duì)的供應(yīng)商跺著腳等著拿入庫單。庫管部的兩個(gè)制單員忙得一塌糊涂,還經(jīng)常被供應(yīng)商投訴。果凍布丁同學(xué)就是其中之一,她決定改變這種狀況,向老師求助怎么根據(jù)一個(gè)單號(hào)自動(dòng)生成一張入庫單……最終通過解決一對(duì)多查詢她得到了供應(yīng)商群里的最大點(diǎn)贊! 最近我們的果凍布丁同學(xué)遇到了一個(gè)關(guān)于入庫單的問題。到底是什么樣的入庫單讓她這么抓狂呢? 果凍布丁同學(xué)的需求是只需要在入庫單I2單元格中填入紅色的單號(hào)就可以從明細(xì)表中自動(dòng)查找對(duì)應(yīng)的物料名稱規(guī)格、價(jià)格等數(shù)據(jù)并填充好,然后將其打印出來。 入庫明細(xì)表: 入庫單: 由于一個(gè)單號(hào)對(duì)應(yīng)了多個(gè)物料,所以果凍布丁同學(xué)的問題就是典型的一對(duì)多查詢問題。 解決思路: 首先我們看到入庫信息表中的單號(hào)與項(xiàng)目編號(hào)是有相關(guān)性的,項(xiàng)目編號(hào)是由單號(hào)加上0-9數(shù)值依次順序組成,項(xiàng)目編號(hào)與物料信息數(shù)據(jù)一一對(duì)應(yīng)。所以我們可以將單號(hào)與數(shù)字的組合即項(xiàng)目編號(hào)而不是單純的單號(hào)作為查找值。 函數(shù)公式: =IFERROR(VLOOKUP($I$2&ROW(單據(jù)打印!M1)-1,入庫!$C:$K,COLUMN(C1),0),"") 將函數(shù)公式向右向下填充即可。 公式解析: (1)$I$2&ROW(單據(jù)打印!M1)-1:用于將編號(hào)與數(shù)字0、1、2等組合變成項(xiàng)目編號(hào)20181113A10、20181113A11、20181113A12等。ROW用于獲取行號(hào),由于其返回的結(jié)果最小值只能為1,想要從0開始就需要-1。M1,只是用來協(xié)助獲取行號(hào),可以是B1、L1、H1等任何第一行的單元格。 (2)COLUMN(C1)含義是返回C1所在單元格的列序號(hào),即3。使用函數(shù)COLUMN的目的是為了讓VLOOKUP第三個(gè)參數(shù)由靜態(tài)的數(shù)字變成動(dòng)態(tài)的數(shù)字,達(dá)到批處理效果。如當(dāng)整體函數(shù)公式向右填充時(shí)COLUMN(C1)變成COLUMN(D1),返回4。 (3)IFERROR函數(shù)的作用是為了規(guī)避vlookup函數(shù)統(tǒng)計(jì)的錯(cuò)誤結(jié)果,如果遇到#N/A這樣的錯(cuò)誤則返回空白。 其實(shí)excel和數(shù)學(xué)題一樣,一題多解那是必須的。 既然VLOOKUP能解決,那么INDEX+MATCH、OFFSET函數(shù)應(yīng)該也能解決果凍布丁同學(xué)的問題。 INDEX+MATCH函數(shù)公式: =IFERROR(INDEX(入庫!E:E,MATCH(單據(jù)打印!$I$2 這里的函數(shù)公式我們就不做詳細(xì)的解釋,INDEX+MATCH組合相信大家應(yīng)該很熟悉了。 函數(shù)公式的重點(diǎn)與方案基本一致,都是通過將單號(hào)合并ROW返回的數(shù)值作為查找值,以此匹配入庫單中C列對(duì)應(yīng)的物料信息。 果凍布丁同學(xué)的問題得到了解決。原來排長隊(duì)等拿入庫單的現(xiàn)象基本消失,在供應(yīng)商群里,很多人給她點(diǎn)贊:姑娘,謝謝啦! 總結(jié): VLOOKUP函數(shù)本身的確是不能進(jìn)行一對(duì)多查找的。上面2個(gè)方案都是通過給相同的查找值加個(gè)小尾巴——標(biāo)號(hào),來區(qū)分,這樣就能通過一對(duì)一的方式完成查找。所以大家遇到類似果凍布丁同學(xué)的問題時(shí)思維要變換一下,把一對(duì)多變成一對(duì)一。另外,本例中我們巧妙的通過ROW、COLUMN兩個(gè)函數(shù)公式替代了靜態(tài)數(shù)字,讓公式得以批量向右向下填充。大家以后記得多多運(yùn)用哦! |
|