編按:通過日期和另一個條件如姓名進行查找,但是輔助列中日期變成了數字,那這時還能用Vlookup進行查找嗎?還有,能不能不用輔助列進行多條件查找呢? 一、日期迷思 最近有學員在使用vlookup進行雙條件查找時遇到了困難: 歸納起來就是兩個問題: 添加“姓名&日期”輔助列,但是輔助列的結果始終不對,這是怎么回事? 能不能不用輔助列實現姓名和日期雙條件查詢? 通常使用Vlookup函數進行多條件查找的時候,使用輔助列是個不錯的選擇。使用“&”符號將兩列或者多列值連接生成輔助列,然后再用“&”符號將兩個或者多個條件串起來當作查找值即可。這位同學的第一解決方案也正是這樣的:添加“姓名&日期”輔助列,然后用Vlookup查詢“G2&H2”。可是當同學發現輔助列原本應該得到姓名加日期的,卻變成了姓名加數字,于是就不敢繼續使用Vlookup查詢了。 他完全被這個莫名其妙的日期變化給弄迷糊了!! 二、vlookup并沒有失效 或許類似的問題大家也遇到過,其實完全不必被這個日期數字的變化給嚇到,給迷惑,vlookup并沒有那么不堪: 從上圖可以看到,雖然輔助列姓名后不是日期,但我們使用vlookup進行查找還是能得到正確的結果,這是怎么回事呢? 三、日期與數字之間的秘密 日期與數字之間到底有何聯系,我們通過一個小測試就能明白了: 明白了嗎?將日期所在的單元格改成常規格式,日期就變成數字了,所以經常會聽到這樣一種說法:日期本質是數字! 關于日期和數字之間的關系,懂得下面這幾個要點就可以了: 1.日期是一種特殊形式的數據,一個日期對應一個常規數字,但是反過來一個數字不一定對應一個日期; 2.在EXCEL中日期是有范圍的,從1900-1-1到9999-12-31,對應的數字是1到2958465,超出范圍就顯示錯誤; 注意:0雖然可以轉換為日期,但是這個日期并沒有實際意義;當數字超出范圍后,轉為日期格式時會顯示為一串#。 3.想要知道數字代表哪個日期,或者是日期等于哪個數字,通過設置單元格格式為日期或者常規即可; 4.通常在公式中,日期被當成數字處理。 四、可以用TEXT函數把數字顯示為日期 明白了上面的幾點,自然就知道雖然輔助列姓名后是數字而非日期,但仍然可以使用Vlookup函數正常查找。如果非要姓名后的數字顯示為日期不可,需要使用TEXT函數進行強制顯示: ![]() 公式為:=B2&TEXT(C2,"e年m月d日") TEXT函數的用法很簡單:TEXT(數據,”格式代碼”),其作用就是將數據按照指定的格式顯示出來。格式代碼一定要加引號(英文狀態)。e表示年(也可以用yyyy表示年),m表示月,d表示日。 到此,同學的第一個問題就解決了。下面看看第二個問題。 五、不用輔助列Vlookup多條件查找 第二個問題,能否不用輔助列使用Vlookup進行多條件查找?完全可以! 我們既然可以用“&”符號把兩個條件連接起來當成一個查找值使用,當然也有辦法把查找區域中的B列、C列當成1列來使用。使用IF函數數組形式,我們可以把查找范圍B:D變成B&C:D,然后進行查找: ![]() 注意:公式=VLOOKUP(F2&G2,IF(,B2:B34&C2:C34,D2:D34),2,0)是一個數組公式,輸入后須要按Ctrl+Shift+Enter,然后再向下填充公式,否則公式填充后結果可能顯示為錯誤#N/A。 ***說明:本文主要由老菜鳥寫作。小雅完成第五節。 |
|
來自: 部落窩教育BLW > 《部落窩excel/VBA》