有人喜歡函數,讚美其和聲之美;有人看見函數就頭疼,這是眾多讀者的反饋。但是當你真正走進了函數的世界,在使用中可以省下很多的時間,進而享受到期間的樂趣,你會對函數刮目相看。
今天講MATCH()函數和INDEX()函數結合,實現雙重條件的查詢。其實這類問題最好用VBA代碼來解決,這裡我還是不遺餘力的寫函數,只是讓大家明白一種VBA的邏輯思路。好了,閒話少敘,看情景。
如下:1、2、3月的出勤如下表,
如果想知道某人1、3月的出勤天數,如何去處理呢?當然如果只是一條數據,輕鬆地就可以實現,如果數據較多,怎麼辦呢?在大數據時代,上千條上萬條數據呢?不急,函數來幫忙。
如上圖,在藍色區域分別錄入上面公式:以B14為例公式講解:
=INDEX($A$1:$D$10,MATCH($A14,$A$1:$A$10,),MATCH($B$13,$A$1:$D$1,))
$A$1:$D$10是指數值的區域範圍;
MATCH($A14,$A$1:$A$10,)是在$A$1:$A$10區域內查找$A14的值,返回行值。
MATCH($B$13,$A$1:$D$1,)是在$A$1:$D$1區域內查找$B$13值,返回列值。
這樣在$A$1:$D$10區域內的行列值有了,就可以返回對應的VALUE了。看下面的返回結果:
這樣就輸出了需要的結果,是不是很麻煩呢?不要緊,你只要跟著上面的公式,在錄入的時候琢磨一下就可以了,不是很難的。上面的公式中還用到了絕對引用和相對引用,就不再多說了。
需要注意的是:上面的方法適用於人員是唯一值;出勤月份為唯一值的條件。
總之,函數就是輸入和輸出的運算,是一種對應關係。關係不亂,函數就不會亂,通過各種關係的組合得到不同的想要得到的值。
分享成果,隨喜正能量