excelperfect
本次的練習是:如下圖1所示,單元格區(qū)域A1:E12是一組數(shù)據(jù),單元格區(qū)域B16:C20是一個標準查找表。其中,列D中的數(shù)據(jù)為對應(yīng)的列C中的數(shù)據(jù)減去列A中的數(shù)據(jù),例如D2=C2-A2;列E中的數(shù)據(jù)為:列B中的值在查找表B16:C20中查找相應(yīng)的解決用時,然后與列D中的值比較,如果列D中的值小于查找到的解決用時,則輸入“Pass”,否則輸入“Fail”。如何使用公式在列E中輸入相應(yīng)的值?
圖1
先不看答案,自已動手試一試。
公式
在單元格E2中,輸入數(shù)組公式:
=IF((D2)<=(TIMEVALUE(INDEX($C$17:$C$20,MATCH(B2,$B$17:$B$20,0),0))),'Pass','Fail')
下拉至單元格E12。
公式解析
首先看公式中的:
MATCH(B2,$B$17:$B$20,0)
在單元格區(qū)域B17:B20中查找單元格B2中的值“SL3”出現(xiàn)的位置,顯示結(jié)果為:3。
傳遞給INDEX函數(shù):
INDEX($C$17:$C$20,MATCH(B2,$B$17:$B$20,0),0))
即:
INDEX($C$17:$C$20,3,0))
獲取單元格區(qū)域C17:C20中第3行的值:08:00。
然后將該值轉(zhuǎn)換為時間序數(shù):
TIMEVALUE(08:00)
得到:
0.333333333333333
將其與單元格D2中的值比較。在單元格D2中顯示的是“時:分”格式,但Excel實際存儲的是時間序數(shù),因此可以正確地對兩者進行比較。結(jié)果為:True,因此最終公式的結(jié)果為:
Pass
這個公式比較簡單,關(guān)鍵是在比較前應(yīng)使用TIMEVALUE函數(shù)將時間轉(zhuǎn)換為序數(shù)。我們知道,Excel是以序數(shù)的形式存儲時間的,一天的時間范圍從0至0.99999999,代表0:00:00至23:59:59。序數(shù)可以這樣換算:
小時數(shù)*60/一天的總分鐘數(shù)
例如:8:00可以換算為:
8*60/1440=0.333333333333333
上面使用了MATCH/INDEX函數(shù)組合進行查找,本例中也可使用VLOOKUP函數(shù)來查找,公式為:
=IF(D2<TIMEVALUE(VLOOKUP(B2,$B$17:$C$20,2,FALSE)),'Pass','Fail')
結(jié)果相同。
聯(lián)系客服