把G2公式改為這樣就行: =IF(F2="","",INDEX(B:B,MATCH(1=1,MIN(ABS(F2-A$2:A$4))=ABS(F2-A$2:A$4),)+1)) 或者用這公式也行: =IF(F2="","",LOOKUP(1,0/(MIN(ABS(F2-A$2:A$4))=ABS(F2-A$2:A$4)),B$2:B$4)) 如果需要對比更大的範圍,如A2:B1000,公式改為這樣就行: =IF(F2="","",INDEX(B:B,MATCH(1=1,MIN(ABS(F2-A$2:A$1000))=ABS(F2-A$2:A$1000),)+1)) 以上的公式是陣列公式,輸入完成後不要直接回車,要按三鍵 CTRL+SHIFT+回車 結束。 原來提問中的公式,用的是VLOOKUP的糊模查詢方式,它的規則是查詢最接近當前值且比當前值小的一個數值為返回的結果,而提問中的2001-11-1雖然最接近2001-10-30,但卻是比2001-10-30大,所以是不會返回想要的結果的。 只有2001-10-1是同時符合比2001-10-30小,又是最接近的值,所以提問的公式就返回對應的B列結果 1 了。 我把檔案傳上來,請點選這回答右下角綠色的“點選下載”按鈕,下載檔案看看效果。
把G2公式改為這樣就行: =IF(F2="","",INDEX(B:B,MATCH(1=1,MIN(ABS(F2-A$2:A$4))=ABS(F2-A$2:A$4),)+1)) 或者用這公式也行: =IF(F2="","",LOOKUP(1,0/(MIN(ABS(F2-A$2:A$4))=ABS(F2-A$2:A$4)),B$2:B$4)) 如果需要對比更大的範圍,如A2:B1000,公式改為這樣就行: =IF(F2="","",INDEX(B:B,MATCH(1=1,MIN(ABS(F2-A$2:A$1000))=ABS(F2-A$2:A$1000),)+1)) 以上的公式是陣列公式,輸入完成後不要直接回車,要按三鍵 CTRL+SHIFT+回車 結束。 原來提問中的公式,用的是VLOOKUP的糊模查詢方式,它的規則是查詢最接近當前值且比當前值小的一個數值為返回的結果,而提問中的2001-11-1雖然最接近2001-10-30,但卻是比2001-10-30大,所以是不會返回想要的結果的。 只有2001-10-1是同時符合比2001-10-30小,又是最接近的值,所以提問的公式就返回對應的B列結果 1 了。 我把檔案傳上來,請點選這回答右下角綠色的“點選下載”按鈕,下載檔案看看效果。