關鍵字:匹配數據;函數;lookup
欄目:技巧集錦 全文998字 預計3分鐘看完哈喽,小夥伴們,你們好呀~
每天學點Excel,工作效率up、up~
我們平時在用Excel處理數據的時候,匹配數據是很常見的一類問題。
而我們在面臨問題時,其實是可以有多種思維來解決的。
所以,在學習Excel時,千萬不要進入到一個誤區——背公式。
條條大路通羅馬,希望大家學會用多種思路去分析問題。
這樣,才能舉一反三,熟能生巧。
今天就通過一個數據匹配問題,通過4個思路來給大家講解解決方法。
問題如圖,有若幹款項,是按月統計的,現在要把每種款項的最後一筆金額匹配出來。
這個問題的難度在于沒有一個具體的匹配條件,最後一筆是哪一筆,眼睛看很清楚,但是怎麼用公式快速匹配出結果呢?
下面針對這個具體問題給出四個思路。
思路1:INDEX-COUNTA組合
公式為=INDEX(B:B,COUNTA(B:B))
公式解析:這個公式思路比較簡單,用INDEX函數在B列找數據,用COUNTA函數統計出B列一共有多少個數據,作為INDEX的檢索條件,有幾個數據就返回第幾個,也就是B列的最後一個值。
缺陷是需要使用三個不同的公式,因為每個款項對應的列是不同的。
思路2:LOOKUP函數
公式為=LOOKUP(9E+307,B:B)
公式解析:思路2直接使用了LOOKUP函數,避免了函數嵌套,需要說明的是公式中的9E+307,這是一個非常大的數字,可以理解為Excel所能識别的最大數值。LOOKUP函數有個特性,如果在給定區域中的所有數據都小于查找值的時候,就會返回最後一個數據。
思路2比思路1簡單,缺陷也是需要三個不同的公式。
思路3:LOOKUP-INDIRECT-ROW組合
公式為=LOOKUP(9E+307,INDIRECT("C"&ROW(A2),0))
公式解析:這個公式與思路2的差别在于查找區域是用INDIRECT("C"&ROW(A2),0)得到的。
關于INDIRECT函數,之前也有教程,在本例中使用的是一種比較少見的RC引用模式,"C"&ROW(A2)是為了得到字符串”C2”,在RC引用模式中表示第二列,也就是B列。
因為随着公式下拉,需要得到類似于”C3”、”C4”的效果,所以加了ROW函數輔助。
這個公式也有一個小缺陷,就是查找的款項是順序排列的。如果想更加靈活,不按款項A、款項B、款項C這樣的順序,就需要對這個思路進行完善。
思路4:LOOKUP-INDIRECT-MATCH組合
公式為=LOOKUP(9E+307,INDIRECT("C"&MATCH(O2,$A$1:$D$1,),0))
公式解析:這個公式估計很多同學會看的比較蒙圈,實際上如果你對思路3理解的話,這個公式隻是将思路3裡的ROW(A2)換成了MATCH(O2,$A$1:$D$1,)
要解釋原理的話也簡單,思路3的列是順序遞增的,因為ROW(A2)下拉得到的就是順序遞增的數字。思路4裡的列是根據款項位置确定的,因為MATCH函數的作用就是返回指定值在一個範圍内的順序數。
要理解最後這個公式,需要對MATCH函數有所了解。
總之,對于任何一個小問題,都有許多值得學習的知識點。
要想學好Excel的公式函數,還得多實踐,不知道今天這個問題中你有什麼收獲呢?
有話要說...