达不达标的公式计算机,“我面试了几十个大学生都不达标,连这3个Excel公式都看不懂”...
1、lookup函數
函數公式:=LOOKUP(1,0/(A3=$I$3:$I$19)*(B3=$J$3:$J$19),$K$3:$K$19)
公式解析:首先通過A3單元格與B表I列數據做對比,同時用B3單元格與B表J列信息做對比。
在excel中如果兩個單元格對比,相等則返回TRUE,在四則運算中用1表示。如果不相等則返回FALSE,使用0表示。
那么(A3=$I$3:$I$19)*(B3=$J$3:$J$19)這部分運算的結果就只有0或者1兩種情況,因為只有0*1、1*1、1*0這三種情況。
用0來除以0和1,由于分母不能為0,所以0/0返回的是錯誤,0/1返回的結果為0。Lookup函數在查找的時候是忽略錯誤的,所以只有數據運算結果為1的公式滿足條件。
那么我們就很好理解0/(A3=$I$3:$I$19)*(B3=$J$3:$J$19)的目的就是將正確結果用0表示,其他的變成錯誤值,利用函數查找忽略錯誤這個特點完成查找。
總結:本函數由于使用了二分法原理查找,所以如果數據量較大時運算會很慢。
2、VLOOKUP函數
使用G2單元格在A列中查找,如果查找到對應單元格則返回A列向右第二列的數據。簡而言之:=VLOOKUP(查找什么,在哪查找,從條件所在列算起找到后返回對應的第幾列數據,精確或模糊查找)。
那vlookup如何才能完成多條件查詢呢?。
還以客戶投訴表為例,按照姓名&地區來匹配產品型號返回到E里中。
其實我們是可以將A、B兩表中插入輔助列,將姓名和地區都合并到一個單元格中然后使用vlookup來完成。
但是插入2個輔助列后整個表列數發生變動,在工作中往往單元格中有很多公式,如果列數發生變化將直接導致表格中函數公式運算結果錯誤。所以添加輔助列的方式雖然簡單,但不是最好的方式。
那么不用輔助列如何才能完成多條件查詢呢?
首先我們查找值合并很簡單,輸入函數vlookup時第一個參數可以寫成A3&B3,即可將A3、B3兩個單元格內容合并,作為查找值。
現在問題查找區域也需要做合并。
如果把兩列內容合并在一起,可輸入公式=H2:H19&I2:I19,按ctrl+shift+回車生成結果,然后下拉公式,這樣兩個條件就變成了一個。
接下來通過IF函數提取對應的J列數據,可輸入公式
=IF({0,1},H2:H19&I2:I19,J2:J19),按ctrl+shift+回車生成結果,然后下拉公式,{0,1}表示邏輯值{FALSE,TRUE}。
下面我們詳細來解析一下:
首先在excel中0表示錯誤,1以及其他所有數值表示正確。如下表示例:
通過上面的例子我看到如果IF判斷0則返回錯誤,判斷1則返回正確。
現在我們可以將公式拆分為以下兩種情況:
IF(0, H2:H19&I2:I19,J2:J19),0表示FALSE,所以只能返回J列數據。
IF(1, H2:H19&I2:I19,J2:J19),1表示TRUE,所以只能返回H列和I列合并結果。
那么IF({0,1},H2:H19&I2:I19,J2:J19)怎么理解呢?
既然是數組公式,那么可以將它理解為同時返回兩組數據,0對應的是J2:J19,1對應的H2:H19&I2:I19,構建了兩列數據。
最后我們使用vlookup函數完成嵌套,
=VLOOKUP(A3&B3,IF({1,0},H3:H20&I3:I20,J3:J20),2,0),這里我們就可以理解為用A3&B3在H3:H20&I3:I20中查找對應J3:J20中的數據。因為公式中
IF({1,0},H3:H20&I3:I20,J3:J20)返回的順序是先返回H3:H20&I3:I20再返回J3:J20。
注意:很多人不明白為什么嵌套的時候IF第一參數又變成了{1,0},因為這里我們需要返回的是H和I合并結果作為查找區域。PS:所有數組公式完成輸入后要使用數組三鍵ctrl+shift+ener來返回運算結果!
這樣我們不用輔助列也能通過vlookup函數完成多條件查詢。
3、OFFSET+MATCH函數
下面舉例跟大家分享一下通過offset函數完成多條件查詢。
函數公式:
{=OFFSET($J$2,MATCH(A3&B3,$H$3:$H$19&$I$3:$I$19,0),)}
公式解析:
完成多條件查詢第一步先要確定A表中姓名&地區合并后對應在B表中姓名&地區的順序。這里我們通過MATCH來完成,我們用個簡單的例子說明。
=MATCH(A2,E:E,0)表示使用A2單元格在E列中查找,0表示精確查找、1小于、-1大于,通常情況下都是精確查找。
MATCH(A3&B3,$H$3:$H$19&$I$3:$I$19,0)表示將A3與B3合并作為查找內容,H列和I列合并作為查找區域,0表示精確查找。
確定順序后我們通過OFFSET函數以順序數據作為偏移行數返回對應數值。
OFFSET函數的功能是以指定的單元格引用為參照系,通過給定偏移量得到新的引用。
返回的引用可以為一個單元格或區域。并可以指定返回的行數或列數。Reference 作為偏移量參照系的引用區域。Reference 必須為對單元格或相連單元格區域的引用;否則,函數 OFFSET 返回錯誤值#VALUE!。
=OFFSET(J2,1,0,1,1)表示以J2單元格作為參照物向下偏移1行,向右偏移0列,返回1行1列數據區域。
=OFFSET($J$2,MATCH(A3&B3,$H$3:$H$19&$I$3:$I$19,0),)表示以$J$2為參照單元格,通過MATCH查找出來順序作為向下偏移的行數,偏移列數量省略表示不偏移,第三個、第四個參數省略表示只返回一個單元格區域。
下面我們來總結一下三種方式的利弊。LOOKUP函數使用過程中運算較慢;VLOOKUP函數使用IF({0,1})數組公式,理解上存在一定難度;OFFSET+MATCH函數公式簡單,可以作為首選方案。
特別聲明:以上文章內容僅代表作者本人觀點,不代表新浪網觀點或立場。如有關于作品內容、版權或其它問題請于作品發表后的30日內與新浪網聯系。
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的达不达标的公式计算机,“我面试了几十个大学生都不达标,连这3个Excel公式都看不懂”...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: usb3.0 ssd 测试软件,当USB
- 下一篇: jap页面使用ajax动态加载列表数据,