這個求助問題還是有點難度的,不僅是多條件查找,匹配結果還是是一對多的,還需再次按條件篩選。
話不多說,直接看案例。
案例 :
下圖 1 中的左邊數據表是每個銷售人員所有產品的流水帳,每人每天晚上會盤點庫存後填入總表,不論順序先後。
因為是流水帳,所以只有看最新日期的庫存才有意義。
右邊數據表的「姓名」和「產品」是下拉菜單,需要根據這兩個選項,自動匹配出最新的日期,以及該日期對應的庫存。
效果如下圖 2 所示。
解決方案:
先製作下拉菜單。
1. 將數據表中的姓名和產品項複製粘貼到空白的區域,選中 K 列 --> 選擇菜單欄的「數據」-->「刪除重複項」
2. 在彈出的對話框中選擇「以當前選定區域排序」--> 點擊「刪除重複項」
3. 點擊「確定」
4. 用同樣的方式給 L 列也刪除重複項。
5. 選中 F2 單元格 --> 選擇菜單欄的「數據」-->「數據驗證」-->「數據驗證」
6. 在彈出的對話框中選擇「設置」選項卡 --> 按以下方式設置 --> 點擊「確定」:
允許:選擇「序列」
來源:選擇 K1:K3 區域
姓名下拉菜單就製作好了。
重複同樣的步驟製作產品下拉菜單。
接下來開始設置公式。
7. 在 H2 單元格中輸入以下公式 --> 按 Ctrl+Shift+Enter 回車:
=MAX(IF((A2:A25=F2)*(B2:B25=G2),C2:C25))
公式釋義:
IF((A2:A25=F2)*(B2:B25=G2):如果「姓名」和「產品」兩個項同時與查找區域相匹配
MAX(...,C2:C25)):那麼查找 C 列結果中的最大值,即最晚日期
數組公式,用三鍵結束
從下圖的結果可以看出,同樣的姓名和產品共有兩條記錄,H2 單元格找出的是最近的日期。
現在根據 F 至 H 三列,匹配出庫存數。
8. 在 I2 單元格中輸入以下公式 --> 按 Ctrl+Shift+Enter 回車:
=VLOOKUP(F2&G2&H2,IF(,A:A&B:B&C:C,D:D),2,0)
公式釋義:
F2&G2&H2:用 & 符號將三個單元格的值合併成一項
IF(,A:A&B:B&C:C,D:D):將邏輯值 作為一組數組參與運算,從而擴充另一組數組 A:A&B:B&C:C,D:D,得到的結果為 {"趙鐵錘芒果5月2日",26;"王鋼蛋火龍果4月30日 ","146";...}
vlookup(...,...,2,0):用 vlookup 函數在上述數組中查找合併單元格的內容,返回 D 列的值
數組公式,用三鍵結束
從下圖的結果可以看出,查找結果完全正確。
Excel學習世界
轉發、在看也是愛!