我的 VLOOKUP 公式未對所有儲存格進行內插
AD AE AF
11-6-2014 15:20 90,4 #N/A
11-6-2014 15:21 89,1 #N/A
11-6-2014 15:22 90,4 Good
11-6-2014 15:23 89,1 Good
AF 欄位是我的公式:(荷蘭語)=AE4-(VERT.ZOEKEN(AD4;$AL$3:$AM$39714;2;WAAR)-1000)(嘗試用英文翻譯)=AE4-(VLOOKUP(AD4; $ AL$3:$AM$39714;2;真)-1000)
這是矩陣列的一部分:
AL AM
11-6-2014 15:22 1026,9
11-6-2014 15:23 1027,3
11-6-2014 15:24 1027,2
11-6-2014 15:25 1026,9
找到我在 11-6-2014 15:22 的資料(1026.9)。但我也希望在 2014 年 6 月 11 日 15:20 和 2014 年 6 月 11 日 15:21 內插該值。據我所知,它應該只查找最接近的日期並輸出矩陣中的值,但事實並非如此。
有任何想法嗎?
答案1
這就是當參數設定為 時VLOOKUP
設計的工作方式。它將傳回小於或等於查找值的最接近值。如果沒有值滿足該條件,則傳回錯誤。Range Lookup
TRUE
有幾個選項供您選擇:
為低於下限的值設定一個例外,然後讓
VLOOKUP
處理其餘的。為此,只需將您的函數包裝在一個IFERROR
函數中即可。=IFERROR(AE4-(VLOOKUP(AD4;$AL$3:$AM$39714;2;True)-1000);AE4-$AM$3)
這只是將所有產生錯誤的查找預設為 column 中的第一個值
AM
。相反,如果您想返回最近日期的數據,而不僅僅是小於或等於查找值的最近日期,則可以使用
VLOOKUP
.下面的陣列公式將傳回AM
最近日期的值。日期之間的中點映射到較晚的日期。=AE4-INDEX($AM$3:$AM$39714,MAX(IF(ABS($AL$3:$AL$39714-AD4)=MIN(ABS($AL$3:$AL$39714-AD4)),ROW($AL$3:$AL$39714)-2,-1)))
這是一個數組公式,因此必須透過按Ctrl+ Shift+輸入才能Enter正常工作。如果正確完成,它將出現在用大括號括起來的公式欄中。
像你這樣的長數組(n= 39,712),陣列公式的計算速度可能很慢,並且可能會拖慢您的電子表格。因此,在決定使用哪種方法時請考慮這一點。