在Excel表格中,Vlookup一直被lookup、Xlookup等函數嫌棄,原因是Vlookup有太多軟肋:
無法反向查找
無法多條件查找
無法從後向前查找
無法一對多查找
眾所周之,有一個函數可以幫Vlookup函數完成逆襲,它就是IF函數。
一、Vlookup函數4個逆天公式
1、從右向從左查找
【例】根據姓名查部門
=VLOOKUP(G2,IF({1,0},B1:B8,A1:A8),2,0)
2、多條件查找
【例】根據部門和姓名查工資
=VLOOKUP(E2&F2,IF({1,0},A2:A8&B2:B8,C2:C8),2,0)
3、查找最後一個
【例】查找A產品最後一次進貨價格
=VLOOKUP(1,IF({100,0},0/(B2:B10="A"),C2:C10),2)
4、一對多查找
【例】查找出人事部所有員工
數組公式輸入完成後按Ctrl+shift+enter結束後自動添加大括號
{=VLOOKUP(E$2&ROW(A1),IF({1,0},A$2:A$8&COUNTIF(INDIRECT("a2:a"&ROW($2:$8)),E$2),B$2:B$8),2,0)}
二、IF函數為什麼這麼牛
IF函數的用法很簡單,但為什麼它竟然可以讓Vlookup實現這麼多逆天的功能,其實這才是蘭色寫本篇教程的主要目的。
IF函數基本語法為:
=IF(判斷條件,條件成立時返回的值,不成立返回的值)
最常見的IF公式是這樣的 : 第一個參數是一個很明顯的判斷表達式
=IF(A1>60,"及格","不及格")
我們選中公式中的A1>60,可以選中按【F9】鍵查看它的結果,如果成立是true,否則是False
也就是說,第一個結果是TRUE返回第2個參數
=IF(TRUE,"及格","不及格")
第一個結果是False返回第3個參數
=IF(FALSE,"及格","不及格")
而在Excel公式中,判斷時
非0數字等同於True(條件成立),一般是用 1
0等同於False(條件不成立)
所以:
=IF(1,"及格","不及格")
=IF(0,"及格","不及格")
如果IF第1個參數是一組數,返回結果也是一組數(多個數放在大括號{}內)
如:
=IF({1,0},"及格","不及格")
結果是:
{"及格","不及格"}
你以為if的第2、3個參數只能是數值?No! 它們還可以是引用區域。可以用來:
1、顛倒兩列位置,構成新的兩列數組,幫助Vlookup實現從左向右的查找
【例】根據姓名查部門
=VLOOKUP(G2,IF({1,0},B1:B8,A1:A8),2,0)
2、多列連接成一列,再和另一列組合成新的兩列數據,幫助Vlookup實現多條件查找等。
【例】根據部門和姓名查工資
=VLOOKUP(E2&F2,IF({1,0},A2:A8&B2:B8,C2:C8),2,0)
現在,你是不是有點明白IF({1,0}在Vlookup中的用法了?
蘭色說:在excel中有很多會用但不知道原理的Excel公式,如果同學們喜歡這種解析的方法,就點讚轉發支持一下。蘭色將繼續講解其他難理解的公式。
如果你是新同學,長按下面二維碼圖片,點上面」識別圖中二維碼「然後再點關注,每天可以收到一篇蘭色最新寫的excel教程。